diff --git a/package.json b/package.json index 263bd08..f6a6e4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jup-ag/plugin", - "version": "1.0.10", + "version": "1.0.11", "private": false, "license": "MIT", "scripts": { @@ -45,7 +45,7 @@ "jotai": "^2.8.3", "jsbi": "4.3.0", "lodash.debounce": "^4.0.8", - "next": "13.4.19", + "next": "13.5.6", "next-seo": "5.15.0", "react-colorful": "^5.6.1", "react-hook-form": "7.42.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ad6693..16e3832 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,7 +14,7 @@ importers: dependencies: '@jup-ag/wallet-adapter': specifier: 0.2.3 - version: 0.2.3(32885e08dc19982463406e850829c345) + version: 0.2.3(f6291c689a0a3cdc7b16519ae718051e) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -49,11 +49,11 @@ importers: specifier: ^4.0.8 version: 4.0.8 next: - specifier: 13.4.19 - version: 13.4.19(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6) + specifier: 13.5.6 + version: 13.5.6(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6) next-seo: specifier: 5.15.0 - version: 5.15.0(next@13.4.19(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.15.0(next@13.5.6(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18 version: 18.3.1 @@ -2000,62 +2000,62 @@ packages: resolution: {integrity: sha512-K5KqIhPI/EoCTbA6CGbrenM9s41OouyK8A03fGJJcla/zKucsgLbz8HNbeseoLarRPgyWJsUyCYqFhI7t3Ra9Q==} engines: {node: '>= 10.*'} - '@next/env@13.4.19': - resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==} + '@next/env@13.5.6': + resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==} '@next/eslint-plugin-next@13.0.0': resolution: {integrity: sha512-z+gnX4Zizatqatc6f4CQrcC9oN8Us3Vrq/OLyc98h7K/eWctrnV91zFZodmJHUjx0cITY8uYM7LXD7IdYkg3kg==} - '@next/swc-darwin-arm64@13.4.19': - resolution: {integrity: sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==} + '@next/swc-darwin-arm64@13.5.6': + resolution: {integrity: sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@13.4.19': - resolution: {integrity: sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==} + '@next/swc-darwin-x64@13.5.6': + resolution: {integrity: sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@13.4.19': - resolution: {integrity: sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==} + '@next/swc-linux-arm64-gnu@13.5.6': + resolution: {integrity: sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@13.4.19': - resolution: {integrity: sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==} + '@next/swc-linux-arm64-musl@13.5.6': + resolution: {integrity: sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@13.4.19': - resolution: {integrity: sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==} + '@next/swc-linux-x64-gnu@13.5.6': + resolution: {integrity: sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@13.4.19': - resolution: {integrity: sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==} + '@next/swc-linux-x64-musl@13.5.6': + resolution: {integrity: sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@13.4.19': - resolution: {integrity: sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==} + '@next/swc-win32-arm64-msvc@13.5.6': + resolution: {integrity: sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@13.4.19': - resolution: {integrity: sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==} + '@next/swc-win32-ia32-msvc@13.5.6': + resolution: {integrity: sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@13.4.19': - resolution: {integrity: sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==} + '@next/swc-win32-x64-msvc@13.5.6': + resolution: {integrity: sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3107,8 +3107,8 @@ packages: resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} engines: {node: '>=10'} - '@swc/helpers@0.5.1': - resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + '@swc/helpers@0.5.2': + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} '@tanstack/query-core@5.85.5': resolution: {integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==} @@ -3571,6 +3571,7 @@ packages: '@walletconnect/sign-client@2.19.1': resolution: {integrity: sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/time@1.0.2': resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} @@ -3587,6 +3588,7 @@ packages: '@walletconnect/universal-provider@2.19.1': resolution: {integrity: sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==} + deprecated: 'Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases' '@walletconnect/utils@2.10.0': resolution: {integrity: sha512-9GRyEz/7CJW+G04RvrjPET5k7hOEsB9b3fF9cWDk/iDCxSWpbkU/hv/urRB36C+gvQMAZgIZYX3dHfzJWkY/2g==} @@ -6020,6 +6022,7 @@ packages: metro-react-native-babel-preset@0.76.9: resolution: {integrity: sha512-eCBtW/UkJPDr6HlMgFEGF+964DZsUEF9RGeJdZLKWE7d/0nY3ABZ9ZAGxzu9efQ35EWRox5bDMXUGaOwUe5ikQ==} engines: {node: '>=16'} + deprecated: Use @react-native/babel-preset instead peerDependencies: '@babel/core': '*' @@ -6183,9 +6186,10 @@ packages: resolution: {integrity: sha512-FyeJ++Lm2Fq31gbThiRCrJlYpIY9QaI7A3TjuhQLzOix8ChQrvn5ny4MhfIthS5cy6+uK1AhDRvxVdW17y3Xdw==} deprecated: All features of next-transpile-modules are now natively built-in Next.js 13.1. Please use Next's transpilePackages option :) - next@13.4.19: - resolution: {integrity: sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==} - engines: {node: '>=16.8.0'} + next@13.5.6: + resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==} + engines: {node: '>=16.14.0'} + deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details. hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -6948,8 +6952,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} postcss@8.4.38: @@ -8536,9 +8540,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -10988,21 +10989,21 @@ snapshots: '@jspm/core@2.0.1': {} - '@jup-ag/jup-mobile-adapter@0.0.1(38e20fe9b896e7d19f6905bdb414bc4a)': + '@jup-ag/jup-mobile-adapter@0.0.1(7450787d943059e1173123d4dcd465d9)': dependencies: '@reown/appkit': 1.7.0(@react-native-async-storage/async-storage@1.19.3(react-native@0.72.15(@babel/core@7.22.11)(@babel/preset-env@7.24.7(@babel/core@7.22.11))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.0.23)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) '@reown/appkit-adapter-solana': 1.7.0(@react-native-async-storage/async-storage@1.19.3(react-native@0.72.15(@babel/core@7.22.11)(@babel/preset-env@7.24.7(@babel/core@7.22.11))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.0.23)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) '@reown/appkit-wallet-button': 1.7.0(@react-native-async-storage/async-storage@1.19.3(react-native@0.72.15(@babel/core@7.22.11)(@babel/preset-env@7.24.7(@babel/core@7.22.11))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.0.23)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.87.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.87.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) - next: 13.4.19(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6) + next: 13.5.6(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6) react: 18.3.1 - '@jup-ag/wallet-adapter@0.2.3(32885e08dc19982463406e850829c345)': + '@jup-ag/wallet-adapter@0.2.3(f6291c689a0a3cdc7b16519ae718051e)': dependencies: '@emotion/react': 11.11.4(@types/react@18.0.23)(react@18.3.1) '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.0.23)(react@18.3.1))(@types/react@18.0.23)(react@18.3.1) - '@jup-ag/jup-mobile-adapter': 0.0.1(38e20fe9b896e7d19f6905bdb414bc4a) + '@jup-ag/jup-mobile-adapter': 0.0.1(7450787d943059e1173123d4dcd465d9) '@reown/appkit': 1.7.0(@react-native-async-storage/async-storage@1.19.3(react-native@0.72.15(@babel/core@7.22.11)(@babel/preset-env@7.24.7(@babel/core@7.22.11))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.0.23)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) '@reown/appkit-adapter-solana': 1.7.0(@react-native-async-storage/async-storage@1.19.3(react-native@0.72.15(@babel/core@7.22.11)(@babel/preset-env@7.24.7(@babel/core@7.22.11))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.0.23)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) '@reown/appkit-wallet-button': 1.7.0(@react-native-async-storage/async-storage@1.19.3(react-native@0.72.15(@babel/core@7.22.11)(@babel/preset-env@7.24.7(@babel/core@7.22.11))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.0.23)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) @@ -11112,37 +11113,37 @@ snapshots: '@mobily/ts-belt@3.13.1': {} - '@next/env@13.4.19': {} + '@next/env@13.5.6': {} '@next/eslint-plugin-next@13.0.0': dependencies: glob: 7.1.7 - '@next/swc-darwin-arm64@13.4.19': + '@next/swc-darwin-arm64@13.5.6': optional: true - '@next/swc-darwin-x64@13.4.19': + '@next/swc-darwin-x64@13.5.6': optional: true - '@next/swc-linux-arm64-gnu@13.4.19': + '@next/swc-linux-arm64-gnu@13.5.6': optional: true - '@next/swc-linux-arm64-musl@13.4.19': + '@next/swc-linux-arm64-musl@13.5.6': optional: true - '@next/swc-linux-x64-gnu@13.4.19': + '@next/swc-linux-x64-gnu@13.5.6': optional: true - '@next/swc-linux-x64-musl@13.4.19': + '@next/swc-linux-x64-musl@13.5.6': optional: true - '@next/swc-win32-arm64-msvc@13.4.19': + '@next/swc-win32-arm64-msvc@13.5.6': optional: true - '@next/swc-win32-ia32-msvc@13.4.19': + '@next/swc-win32-ia32-msvc@13.5.6': optional: true - '@next/swc-win32-x64-msvc@13.4.19': + '@next/swc-win32-x64-msvc@13.5.6': optional: true '@ngraveio/bc-ur@1.1.6': @@ -12823,7 +12824,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@swc/helpers@0.5.1': + '@swc/helpers@0.5.2': dependencies: tslib: 2.6.3 @@ -14562,7 +14563,7 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.21.10 - caniuse-lite: 1.0.30001524 + caniuse-lite: 1.0.30001638 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -16962,9 +16963,9 @@ snapshots: neo-async@2.6.2: {} - next-seo@5.15.0(next@13.4.19(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-seo@5.15.0(next@13.5.6(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 13.4.19(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6) + next: 13.5.6(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -16972,28 +16973,27 @@ snapshots: dependencies: enhanced-resolve: 5.15.0 - next@13.4.19(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6): + next@13.5.6(@babel/core@7.22.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.6): dependencies: - '@next/env': 13.4.19 - '@swc/helpers': 0.5.1 + '@next/env': 13.5.6 + '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001524 - postcss: 8.4.14 + caniuse-lite: 1.0.30001638 + postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.22.11)(react@18.3.1) watchpack: 2.4.0 - zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.19 - '@next/swc-darwin-x64': 13.4.19 - '@next/swc-linux-arm64-gnu': 13.4.19 - '@next/swc-linux-arm64-musl': 13.4.19 - '@next/swc-linux-x64-gnu': 13.4.19 - '@next/swc-linux-x64-musl': 13.4.19 - '@next/swc-win32-arm64-msvc': 13.4.19 - '@next/swc-win32-ia32-msvc': 13.4.19 - '@next/swc-win32-x64-msvc': 13.4.19 + '@next/swc-darwin-arm64': 13.5.6 + '@next/swc-darwin-x64': 13.5.6 + '@next/swc-linux-arm64-gnu': 13.5.6 + '@next/swc-linux-arm64-musl': 13.5.6 + '@next/swc-linux-x64-gnu': 13.5.6 + '@next/swc-linux-x64-musl': 13.5.6 + '@next/swc-win32-arm64-msvc': 13.5.6 + '@next/swc-win32-ia32-msvc': 13.5.6 + '@next/swc-win32-x64-msvc': 13.5.6 sass: 1.77.6 transitivePeerDependencies: - '@babel/core' @@ -17765,7 +17765,7 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.14: + postcss@8.4.31: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -19529,6 +19529,4 @@ snapshots: yocto-queue@0.1.0: {} - zod@3.21.4: {} - zod@3.22.4: {} diff --git a/public/plugin-1.0.11-Jupiter.css b/public/plugin-1.0.11-Jupiter.css new file mode 100644 index 0000000..3211961 --- /dev/null +++ b/public/plugin-1.0.11-Jupiter.css @@ -0,0 +1,4 @@ +/* +! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com +*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline;-webkit-text-decoration:underline dotted currentColor;text-decoration:underline dotted currentColor}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-bottom-\[2px\]{bottom:-2px}.-left-3{left:-.75rem}.-left-4{left:-1rem}.-right-0{right:0}.-right-0\.5{right:-.125rem}.-right-3{right:-.75rem}.-right-4{right:-1rem}.-right-\[5px\]{right:-5px}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-6{bottom:1.5rem}.bottom-\[44px\]{bottom:44px}.bottom-\[60px\]{bottom:60px}.left-0{left:0}.left-1{left:.25rem}.left-6{left:1.5rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1{top:.25rem}.top-10{top:2.5rem}.top-6{top:1.5rem}.top-\[44px\]{top:44px}.top-\[60px\]{top:60px}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[60\]{z-index:60}.-my-3{margin-bottom:-.75rem;margin-top:-.75rem}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-4{margin-bottom:1rem;margin-top:1rem}.-ml-1{margin-left:-.25rem}.-mt-8{margin-top:-2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-0{margin-left:0}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.\!h-0{height:0!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[160px\]{height:160px}.h-\[18px\]{height:18px}.h-\[20px\]{height:20px}.h-\[216px\]{height:216px}.h-\[22px\]{height:22px}.h-\[28px\]{height:28px}.h-\[40px\]{height:40px}.h-\[550px\]{height:550px}.h-\[555px\]{height:555px}.h-\[600px\]{height:600px}.h-\[60px\]{height:60px}.h-full{height:100%}.h-screen{height:100vh}.\!max-h-14{max-height:3.5rem!important}.max-h-64{max-height:16rem}.max-h-\[260px\]{max-height:260px}.max-h-\[75vh\]{max-height:75vh}.min-h-\[12rem\]{min-height:12rem}.min-h-\[550px\]{min-height:550px}.min-h-\[57px\]{min-height:57px}.\!w-0{width:0!important}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-\[260px\]{width:260px}.w-\[360px\]{width:360px}.w-\[50\%\]{width:50%}.w-\[60px\]{width:60px}.w-\[70\%\]{width:70%}.w-\[80\%\]{width:80%}.w-\[90vw\]{width:90vw}.w-\[98\%\]{width:98%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[40px\]{min-width:40px}.max-w-\[360px\]{max-width:360px}.max-w-\[384px\]{max-width:384px}.max-w-\[420px\]{max-width:420px}.max-w-\[700px\]{max-width:700px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-full{--tw-translate-x:100%}.-rotate-45,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-45{--tw-rotate:-45deg}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.rotate-\[135deg\]{--tw-rotate:135deg}.rotate-\[135deg\],.rotate-\[225deg\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[225deg\]{--tw-rotate:225deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes hue{0%{-webkit-filter:hue-rotate(0deg)}to{-webkit-filter:hue-rotate(-1turn)}}.animate-hue{animation:hue 10s linear infinite}@keyframes pulse{50%{opacity:.5}0%,to{opacity:1}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.\!cursor-help{cursor:help!important}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-1{column-gap:.25rem}.gap-x-3{column-gap:.75rem}.gap-x-5{column-gap:1.25rem}.gap-y-10{row-gap:2.5rem}.gap-y-2{row-gap:.5rem}.gap-y-px{row-gap:1px}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-\[3px\]{border-width:3px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-none{border-style:none}.border-background{--tw-border-opacity:1;border-color:rgba(var(--jupiter-plugin-background,0,0,0),var(--tw-border-opacity))}.border-interactive{--tw-border-opacity:1;border-color:rgba(var(--jupiter-plugin-interactive,33,42,54),var(--tw-border-opacity))}.border-interactive\/10{border-color:rgba(33,42,54,.1);border-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.1)}.border-interactive\/60{border-color:rgba(33,42,54,.6);border-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.6)}.border-neutral-500{--tw-border-opacity:1;border-color:rgba(115,115,115,var(--tw-border-opacity))}.border-primary\/50{border-color:hsla(83,81%,73%,.5);border-color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.border-transparent{border-color:transparent}.border-warning\/50{border-color:rgba(251,191,36,.5);border-color:rgba(var(--jupiter-plugin-warning,251,191,36),.5)}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-white\/50{border-color:hsla(0,0%,100%,.5)}.\!bg-black\/20{background-color:rgba(0,0,0,.2)!important}.\!bg-primary{--tw-bg-opacity:1!important;background-color:rgba(199,242,132,var(--tw-bg-opacity))!important;background-color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-bg-opacity))!important}.bg-\[\#002F25\]{--tw-bg-opacity:1;background-color:rgba(0,47,37,var(--tw-bg-opacity))}.bg-\[\#010101\]{--tw-bg-opacity:1;background-color:rgba(1,1,1,var(--tw-bg-opacity))}.bg-\[\#151E31\]{--tw-bg-opacity:1;background-color:rgba(21,30,49,var(--tw-bg-opacity))}.bg-\[\#182220\]{--tw-bg-opacity:1;background-color:rgba(24,34,32,var(--tw-bg-opacity))}.bg-\[\#231B32\]{--tw-bg-opacity:1;background-color:rgba(35,27,50,var(--tw-bg-opacity))}.bg-background{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-background,0,0,0),var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-black\/10{background-color:rgba(0,0,0,.1)}.bg-black\/25{background-color:rgba(0,0,0,.25)}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-interactive{--tw-bg-opacity:1;background-color:rgba(33,42,54,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),var(--tw-bg-opacity))}.bg-interactive\/80{background-color:rgba(33,42,54,.8);background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.8)}.bg-landing-bg{--tw-bg-opacity:1;background-color:rgba(11,14,19,var(--tw-bg-opacity))}.bg-landing-primary{--tw-bg-opacity:1;background-color:rgba(199,242,132,var(--tw-bg-opacity))}.bg-landing-primary\/10{background-color:hsla(83,81%,73%,.1)}.bg-landing-primary\/20{background-color:hsla(83,81%,73%,.2)}.bg-module{--tw-bg-opacity:1;background-color:rgba(16,23,31,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-module,16,23,31),var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgba(199,242,132,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgba(35,193,170,var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-v3-bg{background-color:#1c2936}.bg-warning\/\[8\%\]{background-color:rgba(251,191,36,.08);background-color:rgba(251 191 36 8%);background-color:rgba(var(--jupiter-plugin-warning,251,191,36) 8%)}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-zinc-700{--tw-bg-opacity:1;background-color:rgba(63,63,70,var(--tw-bg-opacity))}.bg-opacity-\[15\%\]{--tw-bg-opacity:15%}.bg-none{background-image:none}.bg-v3-text-gradient{background-image:linear-gradient(247.44deg,#c7f284 13.88%,#00bef0 99.28%)}.from-\[rgba\(199\2c 242\2c 132\2c 1\)\]{--tw-gradient-from:#c7f284 var(--tw-gradient-from-position);--tw-gradient-to:hsla(83,81%,73%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-\[rgba\(0\2c 190\2c 240\2c 1\)\]{--tw-gradient-to:#00bef0 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.\!text-xxs{font-size:.625rem!important;line-height:1rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-xxs{font-size:.625rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.\!text-\[\#C7F284\]{--tw-text-opacity:1!important;color:rgba(199,242,132,var(--tw-text-opacity))!important}.\!text-uiv2-text\/75{color:rgba(7,9,15,.75)!important}.text-\[\#9D9DA6\]{--tw-text-opacity:1;color:rgba(157,157,166,var(--tw-text-opacity))}.text-amber-200{--tw-text-opacity:1;color:rgba(253,230,138,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-landing-primary{--tw-text-opacity:1;color:rgba(199,242,132,var(--tw-text-opacity))}.text-neutral-300{--tw-text-opacity:1;color:rgba(212,212,212,var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity:1;color:rgba(115,115,115,var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgba(199,242,132,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-text-opacity))}.text-primary-text{--tw-text-opacity:1;color:rgba(232,249,255,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary-text,232,249,255),var(--tw-text-opacity))}.text-primary-text\/20{color:rgba(232,249,255,.2);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.2)}.text-primary-text\/25{color:rgba(232,249,255,.25);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.25)}.text-primary-text\/50{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.text-primary-text\/75{color:rgba(232,249,255,.75);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.75)}.text-primary\/50{color:hsla(83,81%,73%,.5);color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.text-success{--tw-text-opacity:1;color:rgba(35,193,170,var(--tw-text-opacity))}.text-transparent{color:transparent}.text-utility-warning-300{--tw-text-opacity:1;color:rgba(181,71,8,var(--tw-text-opacity))}.text-warning{--tw-text-opacity:1;color:rgba(251,191,36,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-warning,251,191,36),var(--tw-text-opacity))}.text-warning\/50{color:rgba(251,191,36,.5);color:rgba(var(--jupiter-plugin-warning,251,191,36),.5)}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-white\/20{color:hsla(0,0%,100%,.2)}.text-white\/30{color:hsla(0,0%,100%,.3)}.text-white\/40{color:hsla(0,0%,100%,.4)}.text-white\/50{color:hsla(0,0%,100%,.5)}.text-white\/60{color:hsla(0,0%,100%,.6)}.text-white\/70{color:hsla(0,0%,100%,.7)}.text-white\/75{color:hsla(0,0%,100%,.75)}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-warning{text-decoration-color:#fbbf24;text-decoration-color:rgba(var(--jupiter-plugin-warning,251,191,36),1)}.decoration-dashed{text-decoration-style:dashed}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:#c7f284;accent-color:rgba(var(--jupiter-plugin-primary,199,242,132),1)}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ring-white\/50{--tw-ring-color:hsla(0,0%,100%,.5)}.blur-sm{--tw-blur:blur(4px)}.blur-sm,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:text-primary-text\/50::placeholder{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.before\:visible:before{content:var(--tw-content);visibility:visible}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:h-2:before{content:var(--tw-content);height:.5rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:rotate-45:before{--tw-rotate:45deg;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:bg-inherit:before{background-color:inherit;content:var(--tw-content)}.last\:border-b:last-child{border-bottom-width:1px}.last\:border-white\/10:last-child{border-color:hsla(0,0%,100%,.1)}.focus-within\:border-primary\/50[focus-within]{border-color:hsla(83,81%,73%,.5);border-color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.focus-within\:border-primary\/50:focus-within{border-color:hsla(83,81%,73%,.5);border-color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.focus-within\:shadow-swap-input-dark[focus-within]{--tw-shadow:0px 2px 16px hsla(83,81%,73%,.25);--tw-shadow-colored:0px 2px 16px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.focus-within\:shadow-swap-input-dark:focus-within{--tw-shadow:0px 2px 16px hsla(83,81%,73%,.25);--tw-shadow-colored:0px 2px 16px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hover\:bg-black\/20:hover{background-color:rgba(0,0,0,.2)}.hover\:bg-interactive\/60:hover{background-color:rgba(33,42,54,.6);background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.6)}.hover\:bg-interactive\/80:hover{background-color:rgba(33,42,54,.8);background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.8)}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.hover\:text-primary-text\/50:hover{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-white\/50:hover{color:hsla(0,0%,100%,.5)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:z-50{z-index:50}.dark .dark\:border{border-width:1px}.dark .dark\:bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.dark .dark\:bg-white\/5{background-color:hsla(0,0%,100%,.05)}.dark .dark\:text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.dark .dark\:text-primary-text{--tw-text-opacity:1;color:rgba(232,249,255,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary-text,232,249,255),var(--tw-text-opacity))}.dark .dark\:text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark .dark\:hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-border-opacity))}@media (min-width:768px){.md\:right-2{right:.5rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:mt-0{margin-top:0}.md\:mt-5{margin-top:1.25rem}.md\:\!flex{display:flex!important}.md\:h-\[66px\]{height:66px}.md\:w-\[600px\]{width:600px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:border-none{border-style:none}.md\:px-0{padding-left:0;padding-right:0}.md\:text-\[60px\]{font-size:60px}}@media (min-width:1024px){.lg\:ml-4{margin-left:1rem}.lg\:mt-0{margin-top:0}.lg\:flex-row{flex-direction:row}} +/*# sourceMappingURL=plugin-1.0.11-Jupiter.css.map*/ \ No newline at end of file diff --git a/public/plugin-1.0.11-Jupiter.css.map b/public/plugin-1.0.11-Jupiter.css.map new file mode 100644 index 0000000..c946f01 --- /dev/null +++ b/public/plugin-1.0.11-Jupiter.css.map @@ -0,0 +1 @@ +{"version":3,"file":"plugin-1.0.11-Jupiter.css","mappings":"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","sources":["webpack://@jup-ag/plugin/./node_modules/.pnpm/tailwindcss@3.3.3/node_modules/tailwindcss/tailwind.css"],"sourcesContent":["@tailwind base;\n\n@tailwind components;\n\n@tailwind utilities;\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/public/plugin-1.0.11-Tailwind.css b/public/plugin-1.0.11-Tailwind.css new file mode 100644 index 0000000..ac44ab0 --- /dev/null +++ b/public/plugin-1.0.11-Tailwind.css @@ -0,0 +1,2 @@ +.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-bottom-\[2px\]{bottom:-2px}.-left-3{left:-.75rem}.-left-4{left:-1rem}.-right-0{right:0}.-right-0\.5{right:-.125rem}.-right-3{right:-.75rem}.-right-4{right:-1rem}.-right-\[5px\]{right:-5px}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-6{bottom:1.5rem}.bottom-\[44px\]{bottom:44px}.bottom-\[60px\]{bottom:60px}.left-0{left:0}.left-1{left:.25rem}.left-6{left:1.5rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1{top:.25rem}.top-10{top:2.5rem}.top-6{top:1.5rem}.top-\[44px\]{top:44px}.top-\[60px\]{top:60px}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[60\]{z-index:60}.-my-3{margin-bottom:-.75rem;margin-top:-.75rem}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-4{margin-bottom:1rem;margin-top:1rem}.-ml-1{margin-left:-.25rem}.-mt-8{margin-top:-2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-0{margin-left:0}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.\!h-0{height:0!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[160px\]{height:160px}.h-\[18px\]{height:18px}.h-\[20px\]{height:20px}.h-\[216px\]{height:216px}.h-\[22px\]{height:22px}.h-\[28px\]{height:28px}.h-\[40px\]{height:40px}.h-\[550px\]{height:550px}.h-\[555px\]{height:555px}.h-\[600px\]{height:600px}.h-\[60px\]{height:60px}.h-full{height:100%}.h-screen{height:100vh}.\!max-h-14{max-height:3.5rem!important}.max-h-64{max-height:16rem}.max-h-\[260px\]{max-height:260px}.max-h-\[75vh\]{max-height:75vh}.min-h-\[12rem\]{min-height:12rem}.min-h-\[550px\]{min-height:550px}.min-h-\[57px\]{min-height:57px}.\!w-0{width:0!important}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-\[260px\]{width:260px}.w-\[360px\]{width:360px}.w-\[50\%\]{width:50%}.w-\[60px\]{width:60px}.w-\[70\%\]{width:70%}.w-\[80\%\]{width:80%}.w-\[90vw\]{width:90vw}.w-\[98\%\]{width:98%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[40px\]{min-width:40px}.max-w-\[360px\]{max-width:360px}.max-w-\[384px\]{max-width:384px}.max-w-\[420px\]{max-width:420px}.max-w-\[700px\]{max-width:700px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-full{--tw-translate-x:100%}.-rotate-45,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-45{--tw-rotate:-45deg}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.rotate-\[135deg\]{--tw-rotate:135deg}.rotate-\[135deg\],.rotate-\[225deg\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[225deg\]{--tw-rotate:225deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes hue{0%{-webkit-filter:hue-rotate(0deg)}to{-webkit-filter:hue-rotate(-1turn)}}.animate-hue{animation:hue 10s linear infinite}@keyframes pulse{50%{opacity:.5}0%,to{opacity:1}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.\!cursor-help{cursor:help!important}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-10{row-gap:2.5rem}.gap-y-2{row-gap:.5rem}.gap-y-px{row-gap:1px}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-\[3px\]{border-width:3px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-none{border-style:none}.border-background{--tw-border-opacity:1;border-color:rgba(var(--jupiter-plugin-background,0,0,0),var(--tw-border-opacity))}.border-interactive{--tw-border-opacity:1;border-color:rgba(var(--jupiter-plugin-interactive,33,42,54),var(--tw-border-opacity))}.border-interactive\/10{border-color:rgba(33,42,54,.1);border-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.1)}.border-interactive\/60{border-color:rgba(33,42,54,.6);border-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.6)}.border-neutral-500{--tw-border-opacity:1;border-color:rgba(115,115,115,var(--tw-border-opacity))}.border-primary\/50{border-color:hsla(83,81%,73%,.5);border-color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.border-transparent{border-color:transparent}.border-warning\/50{border-color:rgba(251,191,36,.5);border-color:rgba(var(--jupiter-plugin-warning,251,191,36),.5)}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-white\/50{border-color:hsla(0,0%,100%,.5)}.\!bg-black\/20{background-color:rgba(0,0,0,.2)!important}.\!bg-primary{--tw-bg-opacity:1!important;background-color:rgba(199,242,132,var(--tw-bg-opacity))!important;background-color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-bg-opacity))!important}.bg-\[\#002F25\]{--tw-bg-opacity:1;background-color:rgba(0,47,37,var(--tw-bg-opacity))}.bg-\[\#010101\]{--tw-bg-opacity:1;background-color:rgba(1,1,1,var(--tw-bg-opacity))}.bg-\[\#151E31\]{--tw-bg-opacity:1;background-color:rgba(21,30,49,var(--tw-bg-opacity))}.bg-\[\#182220\]{--tw-bg-opacity:1;background-color:rgba(24,34,32,var(--tw-bg-opacity))}.bg-\[\#231B32\]{--tw-bg-opacity:1;background-color:rgba(35,27,50,var(--tw-bg-opacity))}.bg-background{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-background,0,0,0),var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-black\/10{background-color:rgba(0,0,0,.1)}.bg-black\/25{background-color:rgba(0,0,0,.25)}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-interactive{--tw-bg-opacity:1;background-color:rgba(33,42,54,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),var(--tw-bg-opacity))}.bg-interactive\/80{background-color:rgba(33,42,54,.8);background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.8)}.bg-landing-bg{--tw-bg-opacity:1;background-color:rgba(11,14,19,var(--tw-bg-opacity))}.bg-landing-primary{--tw-bg-opacity:1;background-color:rgba(199,242,132,var(--tw-bg-opacity))}.bg-landing-primary\/10{background-color:hsla(83,81%,73%,.1)}.bg-landing-primary\/20{background-color:hsla(83,81%,73%,.2)}.bg-module{--tw-bg-opacity:1;background-color:rgba(16,23,31,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-module,16,23,31),var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgba(199,242,132,var(--tw-bg-opacity));background-color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgba(35,193,170,var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-v3-bg{background-color:#1c2936}.bg-warning\/\[8\%\]{background-color:rgba(251,191,36,.08);background-color:rgba(251 191 36 8%);background-color:rgba(var(--jupiter-plugin-warning,251,191,36) 8%)}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-zinc-700{--tw-bg-opacity:1;background-color:rgba(63,63,70,var(--tw-bg-opacity))}.bg-opacity-\[15\%\]{--tw-bg-opacity:15%}.bg-none{background-image:none}.bg-v3-text-gradient{background-image:linear-gradient(247.44deg,#c7f284 13.88%,#00bef0 99.28%)}.from-\[rgba\(199\2c 242\2c 132\2c 1\)\]{--tw-gradient-from:#c7f284 var(--tw-gradient-from-position);--tw-gradient-to:hsla(83,81%,73%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-\[rgba\(0\2c 190\2c 240\2c 1\)\]{--tw-gradient-to:#00bef0 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.\!text-xxs{font-size:.625rem!important;line-height:1rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-xxs{font-size:.625rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.\!text-\[\#C7F284\]{--tw-text-opacity:1!important;color:rgba(199,242,132,var(--tw-text-opacity))!important}.\!text-uiv2-text\/75{color:rgba(7,9,15,.75)!important}.text-\[\#9D9DA6\]{--tw-text-opacity:1;color:rgba(157,157,166,var(--tw-text-opacity))}.text-amber-200{--tw-text-opacity:1;color:rgba(253,230,138,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-landing-primary{--tw-text-opacity:1;color:rgba(199,242,132,var(--tw-text-opacity))}.text-neutral-300{--tw-text-opacity:1;color:rgba(212,212,212,var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity:1;color:rgba(115,115,115,var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgba(199,242,132,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-text-opacity))}.text-primary-text{--tw-text-opacity:1;color:rgba(232,249,255,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary-text,232,249,255),var(--tw-text-opacity))}.text-primary-text\/20{color:rgba(232,249,255,.2);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.2)}.text-primary-text\/25{color:rgba(232,249,255,.25);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.25)}.text-primary-text\/50{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.text-primary-text\/75{color:rgba(232,249,255,.75);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.75)}.text-primary\/50{color:hsla(83,81%,73%,.5);color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.text-success{--tw-text-opacity:1;color:rgba(35,193,170,var(--tw-text-opacity))}.text-transparent{color:transparent}.text-utility-warning-300{--tw-text-opacity:1;color:rgba(181,71,8,var(--tw-text-opacity))}.text-warning{--tw-text-opacity:1;color:rgba(251,191,36,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-warning,251,191,36),var(--tw-text-opacity))}.text-warning\/50{color:rgba(251,191,36,.5);color:rgba(var(--jupiter-plugin-warning,251,191,36),.5)}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-white\/20{color:hsla(0,0%,100%,.2)}.text-white\/30{color:hsla(0,0%,100%,.3)}.text-white\/40{color:hsla(0,0%,100%,.4)}.text-white\/50{color:hsla(0,0%,100%,.5)}.text-white\/60{color:hsla(0,0%,100%,.6)}.text-white\/70{color:hsla(0,0%,100%,.7)}.text-white\/75{color:hsla(0,0%,100%,.75)}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-warning{text-decoration-color:#fbbf24;text-decoration-color:rgba(var(--jupiter-plugin-warning,251,191,36),1)}.decoration-dashed{text-decoration-style:dashed}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:#c7f284;accent-color:rgba(var(--jupiter-plugin-primary,199,242,132),1)}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ring-white\/50{--tw-ring-color:hsla(0,0%,100%,.5)}.blur-sm{--tw-blur:blur(4px)}.blur-sm,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--jupiter-plugin-primary:199,242,132;--jupiter-plugin-background:0,0,0;--jupiter-plugin-primary-text:232,249,255;--jupiter-plugin-warning:251,191,36;--jupiter-plugin-interactive:33,42,54;--jupiter-plugin-module:16,23,31}#jupiter-plugin *{box-sizing:border-box;font-family:Inter,sans-serif}#jupiter-plugin :focus{outline:none}.hideScrollbar{-ms-overflow-style:none}.hideScrollbar::-webkit-scrollbar{display:none}.hideScrollbar::-moz-scrollbar{display:none}.webkit-scrollbar::-webkit-scrollbar{width:8px}.webkit-scrollbar::-webkit-scrollbar-thumb{background:#979797;border-radius:10px;margin:2px}#jupiter-plugin .jup-gradient:before{background:linear-gradient(91.26deg,#fcc00a 15.73%,#4ebae9 83.27%);border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff,#fff 0) content-box,linear-gradient(#fff,#fff 0);mask:linear-gradient(#fff,#fff 0) content-box,linear-gradient(#fff,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:source-out;padding:2px;position:absolute;right:0;top:0}.jupiter-tooltip{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity));border-radius:.5rem;color:rgba(232,249,255,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary-text,232,249,255),var(--tw-text-opacity));padding:.5rem;position:absolute;visibility:hidden}.jupiter-has-tooltip:hover .jupiter-tooltip{visibility:visible;z-index:50}.placeholder\:text-primary-text\/50::-moz-placeholder{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.placeholder\:text-primary-text\/50::placeholder{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.before\:visible:before{content:var(--tw-content);visibility:visible}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:h-2:before{content:var(--tw-content);height:.5rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:rotate-45:before{--tw-rotate:45deg;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:bg-inherit:before{background-color:inherit;content:var(--tw-content)}.last\:border-b:last-child{border-bottom-width:1px}.last\:border-white\/10:last-child{border-color:hsla(0,0%,100%,.1)}.focus-within\:border-primary\/50[focus-within]{border-color:hsla(83,81%,73%,.5);border-color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.focus-within\:border-primary\/50:focus-within{border-color:hsla(83,81%,73%,.5);border-color:rgba(var(--jupiter-plugin-primary,199,242,132),.5)}.focus-within\:shadow-swap-input-dark[focus-within]{--tw-shadow:0px 2px 16px hsla(83,81%,73%,.25);--tw-shadow-colored:0px 2px 16px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.focus-within\:shadow-swap-input-dark:focus-within{--tw-shadow:0px 2px 16px hsla(83,81%,73%,.25);--tw-shadow-colored:0px 2px 16px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hover\:bg-black\/20:hover{background-color:rgba(0,0,0,.2)}.hover\:bg-interactive\/60:hover{background-color:rgba(33,42,54,.6);background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.6)}.hover\:bg-interactive\/80:hover{background-color:rgba(33,42,54,.8);background-color:rgba(var(--jupiter-plugin-interactive,33,42,54),.8)}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.hover\:text-primary-text\/50:hover{color:rgba(232,249,255,.5);color:rgba(var(--jupiter-plugin-primary-text,232,249,255),.5)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-white\/50:hover{color:hsla(0,0%,100%,.5)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:z-50{z-index:50}.dark .dark\:border{border-width:1px}.dark .dark\:bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.dark .dark\:bg-white\/5{background-color:hsla(0,0%,100%,.05)}.dark .dark\:text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.dark .dark\:text-primary-text{--tw-text-opacity:1;color:rgba(232,249,255,var(--tw-text-opacity));color:rgba(var(--jupiter-plugin-primary-text,232,249,255),var(--tw-text-opacity))}.dark .dark\:text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark .dark\:hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--jupiter-plugin-primary,199,242,132),var(--tw-border-opacity))}@media (min-width:768px){.md\:right-2{right:.5rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:mt-0{margin-top:0}.md\:mt-5{margin-top:1.25rem}.md\:\!flex{display:flex!important}.md\:h-\[66px\]{height:66px}.md\:w-\[600px\]{width:600px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:border-none{border-style:none}.md\:px-0{padding-left:0;padding-right:0}.md\:text-\[60px\]{font-size:60px}}@media (min-width:1024px){.lg\:ml-4{margin-left:1rem}.lg\:mt-0{margin-top:0}.lg\:flex-row{flex-direction:row}} +/*# sourceMappingURL=plugin-1.0.11-Tailwind.css.map*/ \ No newline at end of file diff --git a/public/plugin-1.0.11-Tailwind.css.map b/public/plugin-1.0.11-Tailwind.css.map new file mode 100644 index 0000000..4194de4 --- /dev/null +++ b/public/plugin-1.0.11-Tailwind.css.map @@ -0,0 +1 @@ +{"version":3,"file":"plugin-1.0.11-Tailwind.css","mappings":"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","sources":["webpack://@jup-ag/plugin/./src/styles/globals.css"],"sourcesContent":["@tailwind components;\n@tailwind utilities;\n:root {\n --jupiter-plugin-primary: 199, 242, 132;\n --jupiter-plugin-background: 0, 0, 0;\n --jupiter-plugin-primary-text: 232, 249, 255;\n --jupiter-plugin-warning: 251, 191, 36;\n --jupiter-plugin-interactive: 33, 42, 54;\n --jupiter-plugin-module: 16, 23, 31;\n}\n#jupiter-plugin * {\n box-sizing: border-box;\n font-family: Inter, sans-serif;\n}\n\n#jupiter-plugin *:focus {\n outline: none;\n}\n\n/* JupButton border gradient */\n#jupiter-plugin .jup-gradient::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: 0.5rem;\n padding: 2px;\n background: linear-gradient(91.26deg, #fcc00a 15.73%, #4ebae9 83.27%);\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n -webkit-mask-composite: source-out;\n}\n\n.hideScrollbar {\n -ms-overflow-style: none;\n}\n\n.hideScrollbar::-webkit-scrollbar {\n display: none;\n}\n\n.hideScrollbar::-moz-scrollbar {\n display: none;\n}\n\n/* Custom scroll bar */\n.webkit-scrollbar::-webkit-scrollbar {\n width: 8px;\n}\n\n.webkit-scrollbar::-webkit-scrollbar-thumb {\n margin: 2px;\n -webkit-border-radius: 10px;\n border-radius: 10px;\n background: #979797;\n}\n\n#jupiter-plugin .jup-gradient::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: 0.5rem;\n padding: 2px;\n background: linear-gradient(91.26deg, #fcc00a 15.73%, #4ebae9 83.27%);\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n -webkit-mask-composite: source-out;\n}\n\n /* Add tooltip functionality */\n.jupiter-tooltip {\n @apply invisible absolute;\n @apply bg-black text-primary-text p-2 rounded-lg;\n}\n\n.jupiter-has-tooltip:hover .jupiter-tooltip {\n @apply visible z-50;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/public/plugin-1.0.11-app.js b/public/plugin-1.0.11-app.js new file mode 100644 index 0000000..0631c1b --- /dev/null +++ b/public/plugin-1.0.11-app.js @@ -0,0 +1,3 @@ +/*! For license information please see plugin-1.0.11-app.js.LICENSE.txt */ +(self.webpackChunk_jup_ag_plugin=self.webpackChunk_jup_ag_plugin||[]).push([[991],{6111:(e,t,r)=>{"use strict";t.I0=t.DH=t.NX=t.u8=t.cY=void 0,t.av=t.O6=t.w3=t.Wg=void 0;const n=r(4686);function i(e){if(!(e instanceof Uint8Array))throw new TypeError("b must be a Uint8Array")}function o(e){return i(e),n.Buffer.from(e.buffer,e.byteOffset,e.length)}class s{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}function a(e,t){return t.property?e+"["+t.property+"]":e}class u extends s{isCount(){throw new Error("ExternalLayout is abstract")}}class c extends u{constructor(e,t=0,r){if(!(e instanceof s))throw new TypeError("layout must be a Layout");if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof l||this.layout instanceof f}decode(e,t=0){return this.layout.decode(e,t+this.offset)}encode(e,t,r=0){return this.layout.encode(e,t,r+this.offset)}}class l extends s{constructor(e,t){if(super(e,t),6e+n.encode(i,t,r+e)),0);return this.count instanceof u&&this.count.encode(e.length,t,r),i}}class v extends s{constructor(e,t,r){if(!Array.isArray(e)||!e.reduce(((e,t)=>e&&t instanceof s),!0))throw new TypeError("fields must be array of Layout instances");"boolean"==typeof t&&void 0===r&&(r=t,t=void 0);for(const t of e)if(0>t.span&&void 0===t.property)throw new Error("fields cannot contain unnamed variable-length layout");let n=-1;try{n=e.reduce(((e,t)=>e+t.getSpan()),0)}catch(e){}super(n,t),this.fields=e,this.decodePrefixes=!!r}getSpan(e,t=0){if(0<=this.span)return this.span;let r=0;try{r=this.fields.reduce(((r,n)=>{const i=n.getSpan(e,t);return t+=i,r+i}),0)}catch(e){throw new RangeError("indeterminate span")}return r}decode(e,t=0){i(e);const r=this.makeDestinationObject();for(const n of this.fields)if(void 0!==n.property&&(r[n.property]=n.decode(e,t)),t+=n.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return r}encode(e,t,r=0){const n=r;let i=0,o=0;for(const n of this.fields){let s=n.span;if(o=0s&&(s=n.getSpan(t,r)))}i=r,r+=s}return i+o-n}fromArray(e){const t=this.makeDestinationObject();for(const r of this.fields)void 0!==r.property&&0r.span?t=-1:0<=t&&(t+=r.span)}}}class w extends s{constructor(e,t){if(!(e instanceof u&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof u||(r=e),super(r,t),this.length=e}getSpan(e,t){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),r}decode(e,t=0){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),o(e).slice(t,t+r)}encode(e,t,r){let n=this.length;if(this.length instanceof u&&(n=e.length),!(e instanceof Uint8Array&&n===e.length))throw new TypeError(a("Blob.encode",this)+" requires (length "+n+") Uint8Array as src");if(r+n>t.length)throw new RangeError("encoding overruns Uint8Array");const i=o(e);return o(t).write(i.toString("hex"),r,n,"hex"),this.length instanceof u&&this.length.encode(n,t,r),n}}t.cY=(e,t,r)=>new c(e,t,r),t.u8=e=>new l(1,e),t.NX=e=>new l(2,e),t.DH=e=>new l(4,e),t.I0=e=>new g(e),t.Wg=e=>new m(e),t.w3=(e,t,r)=>new v(e,t,r),t.O6=(e,t,r)=>new y(e,t,r),t.av=(e,t)=>new w(e,t)},3760:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Account:()=>Sr,AddressLookupTableAccount:()=>Tn,AddressLookupTableInstruction:()=>Io,AddressLookupTableProgram:()=>Ao,Authorized:()=>Uo,BLOCKHASH_CACHE_TIMEOUT_MS:()=>zn,BPF_LOADER_DEPRECATED_PROGRAM_ID:()=>Mr,BPF_LOADER_PROGRAM_ID:()=>wn,BpfLoader:()=>bn,COMPUTE_BUDGET_INSTRUCTION_LAYOUTS:()=>jo,ComputeBudgetInstruction:()=>Co,ComputeBudgetProgram:()=>No,Connection:()=>ko,Ed25519Program:()=>Po,Enum:()=>gr,EpochSchedule:()=>En,FeeCalculatorLayout:()=>cn,Keypair:()=>Oo,LAMPORTS_PER_SOL:()=>cs,LOOKUP_TABLE_INSTRUCTION_LAYOUTS:()=>Eo,Loader:()=>vn,Lockup:()=>Wo,MAX_SEED_LENGTH:()=>wr,Message:()=>Ur,MessageAccountKeys:()=>jr,MessageV0:()=>Wr,NONCE_ACCOUNT_LENGTH:()=>fn,NonceAccount:()=>dn,PACKET_DATA_SIZE:()=>kr,PUBLIC_KEY_LENGTH:()=>br,PublicKey:()=>xr,SIGNATURE_LENGTH_IN_BYTES:()=>Er,SOLANA_SCHEMA:()=>mr,STAKE_CONFIG_ID:()=>zo,STAKE_INSTRUCTION_LAYOUTS:()=>qo,SYSTEM_INSTRUCTION_LAYOUTS:()=>gn,SYSVAR_CLOCK_PUBKEY:()=>Yr,SYSVAR_EPOCH_SCHEDULE_PUBKEY:()=>Gr,SYSVAR_INSTRUCTIONS_PUBKEY:()=>Zr,SYSVAR_RECENT_BLOCKHASHES_PUBKEY:()=>Jr,SYSVAR_RENT_PUBKEY:()=>Xr,SYSVAR_REWARDS_PUBKEY:()=>en,SYSVAR_SLOT_HASHES_PUBKEY:()=>tn,SYSVAR_SLOT_HISTORY_PUBKEY:()=>rn,SYSVAR_STAKE_HISTORY_PUBKEY:()=>nn,Secp256k1Program:()=>Lo,SendTransactionError:()=>In,SolanaJSONRPCError:()=>Cn,SolanaJSONRPCErrorCode:()=>An,StakeAuthorizationLayout:()=>Ho,StakeInstruction:()=>Fo,StakeProgram:()=>Ko,Struct:()=>pr,SystemInstruction:()=>pn,SystemProgram:()=>mn,Transaction:()=>Qr,TransactionExpiredBlockheightExceededError:()=>Ir,TransactionExpiredNonceInvalidError:()=>Cr,TransactionExpiredTimeoutError:()=>Ar,TransactionInstruction:()=>Kr,TransactionMessage:()=>Vr,TransactionStatus:()=>qr,VALIDATOR_INFO_KEY:()=>Zo,VERSION_PREFIX_MASK:()=>Or,VOTE_PROGRAM_ID:()=>es,ValidatorInfo:()=>Xo,VersionedMessage:()=>Fr,VersionedTransaction:()=>$r,VoteAccount:()=>rs,VoteAuthorizationLayout:()=>Yo,VoteInit:()=>Qo,VoteInstruction:()=>Vo,VoteProgram:()=>Go,clusterApiUrl:()=>as,sendAndConfirmRawTransaction:()=>us,sendAndConfirmTransaction:()=>on});var n={};r.r(n),r.d(n,{OG:()=>$,My:()=>z,Ph:()=>F,lX:()=>q,Id:()=>V,fg:()=>Z,qj:()=>Q,aT:()=>W,lq:()=>H,z:()=>K,Q5:()=>X});var i=r(4686);function o(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function s(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function a(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function u(e,t){s(e);const r=t.outputLen;if(e.lengthe instanceof Uint8Array,f=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),d=(e,t)=>e<<32-t|e>>>t;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");function h(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}function p(e){if("string"==typeof e&&(e=h(e)),!l(e))throw new Error("expected Uint8Array, got "+typeof e);return e}function g(...e){const t=new Uint8Array(e.reduce(((e,t)=>e+t.length),0));let r=0;return e.forEach((e=>{if(!l(e))throw new Error("Uint8Array expected");t.set(e,r),r+=e.length})),t}class m{clone(){return this._cloneInto()}}function y(e){const t=t=>e().update(p(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function v(e=32){if(c&&"function"==typeof c.getRandomValues)return c.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}class w extends m{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=f(this.buffer)}update(e){a(this);const{view:t,buffer:r,blockLen:n}=this,i=(e=p(e)).length;for(let o=0;on-o&&(this.process(r,0),o=0);for(let e=o;e>i&o),a=Number(r&o),u=n?4:0,c=n?0:4;e.setUint32(t+u,s,n),e.setUint32(t+c,a,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const s=f(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=c/4,d=this.get();if(l>d.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>_&b)}:{h:0|Number(e>>_&b),l:0|Number(e&b)}}function S(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;ie<>>32-r,k=(e,t,r)=>t<>>32-r,O=(e,t,r)=>t<>>64-r,E=(e,t,r)=>e<>>64-r,I={fromBig:x,split:S,toBig:(e,t)=>BigInt(e>>>0)<<_|BigInt(t>>>0),shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:M,rotlSL:k,rotlBH:O,rotlBL:E,add:function(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}},add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L:(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H:(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,add5H:(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,add5L:(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0)},[A,C]=(()=>I.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))))(),j=new Uint32Array(80),N=new Uint32Array(80);class T extends w{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:u,El:c,Fh:l,Fl:f,Gh:d,Gl:h,Hh:p,Hl:g}=this;return[e,t,r,n,i,o,s,a,u,c,l,f,d,h,p,g]}set(e,t,r,n,i,o,s,a,u,c,l,f,d,h,p,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|o,this.Dh=0|s,this.Dl=0|a,this.Eh=0|u,this.El=0|c,this.Fh=0|l,this.Fl=0|f,this.Gh=0|d,this.Gl=0|h,this.Hh=0|p,this.Hl=0|g}process(e,t){for(let r=0;r<16;r++,t+=4)j[r]=e.getUint32(t),N[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|j[e-15],r=0|N[e-15],n=I.rotrSH(t,r,1)^I.rotrSH(t,r,8)^I.shrSH(t,r,7),i=I.rotrSL(t,r,1)^I.rotrSL(t,r,8)^I.shrSL(t,r,7),o=0|j[e-2],s=0|N[e-2],a=I.rotrSH(o,s,19)^I.rotrBH(o,s,61)^I.shrSH(o,s,6),u=I.rotrSL(o,s,19)^I.rotrBL(o,s,61)^I.shrSL(o,s,6),c=I.add4L(i,u,N[e-7],N[e-16]),l=I.add4H(c,n,a,j[e-7],j[e-16]);j[e]=0|l,N[e]=0|c}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:u,Dl:c,Eh:l,El:f,Fh:d,Fl:h,Gh:p,Gl:g,Hh:m,Hl:y}=this;for(let e=0;e<80;e++){const t=I.rotrSH(l,f,14)^I.rotrSH(l,f,18)^I.rotrBH(l,f,41),v=I.rotrSL(l,f,14)^I.rotrSL(l,f,18)^I.rotrBL(l,f,41),w=l&d^~l&p,b=f&h^~f&g,_=I.add5L(y,v,b,C[e],N[e]),x=I.add5H(_,m,t,w,A[e],j[e]),S=0|_,M=I.rotrSH(r,n,28)^I.rotrBH(r,n,34)^I.rotrBH(r,n,39),k=I.rotrSL(r,n,28)^I.rotrBL(r,n,34)^I.rotrBL(r,n,39),O=r&i^r&s^i&s,E=n&o^n&a^o&a;m=0|p,y=0|g,p=0|d,g=0|h,d=0|l,h=0|f,({h:l,l:f}=I.add(0|u,0|c,0|x,0|S)),u=0|s,c=0|a,s=0|i,a=0|o,i=0|r,o=0|n;const T=I.add3L(S,k,E);r=I.add3H(T,x,M,O),n=0|T}({h:r,l:n}=I.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:o}=I.add(0|this.Bh,0|this.Bl,0|i,0|o)),({h:s,l:a}=I.add(0|this.Ch,0|this.Cl,0|s,0|a)),({h:u,l:c}=I.add(0|this.Dh,0|this.Dl,0|u,0|c)),({h:l,l:f}=I.add(0|this.Eh,0|this.El,0|l,0|f)),({h:d,l:h}=I.add(0|this.Fh,0|this.Fl,0|d,0|h)),({h:p,l:g}=I.add(0|this.Gh,0|this.Gl,0|p,0|g)),({h:m,l:y}=I.add(0|this.Hh,0|this.Hl,0|m,0|y)),this.set(r,n,i,o,s,a,u,c,l,f,d,h,p,g,m,y)}roundClean(){j.fill(0),N.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const P=y((()=>new T)),R=(BigInt(0),BigInt(1)),D=BigInt(2),L=e=>e instanceof Uint8Array,B=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function z(e){if(!L(e))throw new Error("Uint8Array expected");let t="";for(let r=0;re+t.length),0));let r=0;return e.forEach((e=>{if(!L(e))throw new Error("Uint8Array expected");t.set(e,r),r+=e.length})),t}const $=e=>(D<new Uint8Array(e),G=e=>Uint8Array.from(e);function Z(e,t,r){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");let n=Y(e),i=Y(e),o=0;const s=()=>{n.fill(1),i.fill(0),o=0},a=(...e)=>r(i,n,...e),u=(e=Y())=>{i=a(G([0]),e),n=a(),0!==e.length&&(i=a(G([1]),e),n=a())},c=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const r=[];for(;e{let r;for(s(),u(e);!(r=t(c()));)u();return s(),r}}const J={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function X(e,t,r={}){const n=(t,r,n)=>{const i=J[r];if("function"!=typeof i)throw new Error(`Invalid validator "${r}", expected function`);const o=e[t];if(!(n&&void 0===o||i(o,e)))throw new Error(`Invalid param ${String(t)}=${o} (${typeof o}), expected ${r}`)};for(const[e,r]of Object.entries(t))n(e,r,!1);for(const[e,t]of Object.entries(r))n(e,t,!0);return e}const ee=BigInt(0),te=BigInt(1),re=BigInt(2),ne=BigInt(3),ie=BigInt(4),oe=BigInt(5),se=BigInt(8);function ae(e,t){const r=e%t;return r>=ee?r:t+r}function ue(e,t,r){if(r<=ee||t 0");if(r===te)return ee;let n=te;for(;t>ee;)t&te&&(n=n*e%r),e=e*e%r,t>>=te;return n}function ce(e,t,r){let n=e;for(;t-- >ee;)n*=n,n%=r;return n}function le(e,t){if(e===ee||t<=ee)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ae(e,t),n=t,i=ee,o=te,s=te,a=ee;for(;r!==ee;){const e=n/r,t=n%r,u=i-s*e,c=o-a*e;n=r,r=t,i=s,o=a,s=u,a=c}if(n!==te)throw new Error("invert: does not exist");return ae(i,t)}BigInt(9),BigInt(16);const fe=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function de(e,t){const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function he(e,t,r=!1,n={}){if(e<=ee)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:i,nByteLength:o}=de(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=function(e){if(e%ie===ne){const t=(e+te)/ie;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw new Error("Cannot find square root");return n}}if(e%se===oe){const t=(e-oe)/se;return function(e,r){const n=e.mul(r,re),i=e.pow(n,t),o=e.mul(r,i),s=e.mul(e.mul(o,re),i),a=e.mul(o,e.sub(s,e.ONE));if(!e.eql(e.sqr(a),r))throw new Error("Cannot find square root");return a}}return function(e){const t=(e-te)/re;let r,n,i;for(r=e-te,n=0;r%re===ee;r/=re,n++);for(i=re;iae(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return ee<=t&&te===ee,isOdd:e=>(e&te)===te,neg:t=>ae(-t,e),eql:(e,t)=>e===t,sqr:t=>ae(t*t,e),add:(t,r)=>ae(t+r,e),sub:(t,r)=>ae(t-r,e),mul:(t,r)=>ae(t*r,e),pow:(e,t)=>function(e,t,r){if(r 0");if(r===ee)return e.ONE;if(r===te)return t;let n=e.ONE,i=t;for(;r>ee;)r&te&&(n=e.mul(n,i)),i=e.sqr(i),r>>=te;return n}(a,e,t),div:(t,r)=>ae(t*le(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>le(t,e),sqrt:n.sqrt||(e=>s(a,e)),invertBatch:e=>function(e,t){const r=new Array(t.length),n=t.reduce(((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n))),e.ONE),i=e.inv(n);return t.reduceRight(((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n))),i),r}(a,e),cmov:(e,t,r)=>r?t:e,toBytes:e=>r?K(e,o):H(e,o),fromBytes:e=>{if(e.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${e.length}`);return r?q(e):F(e)}});return Object.freeze(a)}function pe(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function ge(e){const t=pe(e);return t+Math.ceil(t/2)}const me=BigInt(0),ye=BigInt(1);function ve(e,t){const r=(e,t)=>{const r=t.negate();return e?r:t},n=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:r,unsafeLadder(t,r){let n=e.ZERO,i=t;for(;r>me;)r&ye&&(n=n.add(i)),i=i.double(),r>>=ye;return n},precomputeWindow(e,t){const{windows:r,windowSize:i}=n(t),o=[];let s=e,a=s;for(let e=0;e>=d,n>a&&(n-=f,o+=ye);const s=t,h=t+Math.abs(n)-1,p=e%2!=0,g=n<0;0===n?c=c.add(r(p,i[s])):u=u.add(r(g,i[h]))}return{p:u,f:c}},wNAFCached(e,t,r,n){const i=e._WINDOW_SIZE||1;let o=t.get(e);return o||(o=this.precomputeWindow(e,i),1!==i&&t.set(e,n(o))),this.wNAF(i,o,r)}}}function we(e){return X(e.Fp,fe.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),X(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...de(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}const be=BigInt(0),_e=BigInt(1),xe=BigInt(2),Se=BigInt(8),Me={zip215:!0};function ke(e){const t=function(e){const t=we(e);return X(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:u}=t,c=xe<{try{return{isValid:!0,value:r.sqrt(e*r.inv(t))}}catch(e){return{isValid:!1,value:be}}}),d=t.adjustScalarBytes||(e=>e),h=t.domain||((e,t,r)=>{if(t.length||r)throw new Error("Contexts/pre-hash are not supported");return e}),p=e=>"bigint"==typeof e&&bep(e)&&p(t)&&ee===be||g(e,c);function y(e,t){if(g(e,t))return e;throw new Error(`Expected valid scalar < ${t}, got ${typeof e} ${e}`)}function v(e){return e===be?e:y(e,n)}const w=new Map;function b(e){if(!(e instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(e,t,r,n){if(this.ex=e,this.ey=t,this.ez=r,this.et=n,!m(e))throw new Error("x required");if(!m(t))throw new Error("y required");if(!m(r))throw new Error("z required");if(!m(n))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(e){if(e instanceof _)throw new Error("extended point not allowed");const{x:t,y:r}=e||{};if(!m(t)||!m(r))throw new Error("invalid affine point");return new _(t,r,_e,l(t*r))}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.ez)));return e.map(((e,r)=>e.toAffine(t[r]))).map(_.fromAffine)}_setWindowSize(e){this._WINDOW_SIZE=e,w.delete(this)}assertValidity(){const{a:e,d:r}=t;if(this.is0())throw new Error("bad point: ZERO");const{ex:n,ey:i,ez:o,et:s}=this,a=l(n*n),u=l(i*i),c=l(o*o),f=l(c*c),d=l(a*e);if(l(c*l(d+u))!==l(f+l(r*l(a*u))))throw new Error("bad point: equation left != right (1)");if(l(n*i)!==l(o*s))throw new Error("bad point: equation left != right (2)")}equals(e){b(e);const{ex:t,ey:r,ez:n}=this,{ex:i,ey:o,ez:s}=e,a=l(t*s),u=l(i*n),c=l(r*s),f=l(o*n);return a===u&&c===f}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){const{a:e}=t,{ex:r,ey:n,ez:i}=this,o=l(r*r),s=l(n*n),a=l(xe*l(i*i)),u=l(e*o),c=r+n,f=l(l(c*c)-o-s),d=u+s,h=d-a,p=u-s,g=l(f*h),m=l(d*p),y=l(f*p),v=l(h*d);return new _(g,m,v,y)}add(e){b(e);const{a:r,d:n}=t,{ex:i,ey:o,ez:s,et:a}=this,{ex:u,ey:c,ez:f,et:d}=e;if(r===BigInt(-1)){const e=l((o-i)*(c+u)),t=l((o+i)*(c-u)),r=l(t-e);if(r===be)return this.double();const n=l(s*xe*d),h=l(a*xe*f),p=h+n,g=t+e,m=h-n,y=l(p*r),v=l(g*m),w=l(p*m),b=l(r*g);return new _(y,v,b,w)}const h=l(i*u),p=l(o*c),g=l(a*n*d),m=l(s*f),y=l((i+o)*(u+c)-h-p),v=m-g,w=m+g,x=l(p-r*h),S=l(y*v),M=l(w*x),k=l(y*x),O=l(v*w);return new _(S,M,O,k)}subtract(e){return this.add(e.negate())}wNAF(e){return M.wNAFCached(this,w,e,_.normalizeZ)}multiply(e){const{p:t,f:r}=this.wNAF(y(e,n));return _.normalizeZ([t,r])[0]}multiplyUnsafe(e){let t=v(e);return t===be?S:this.equals(S)||t===_e?this:this.equals(x)?this.wNAF(t).p:M.unsafeLadder(this,t)}isSmallOrder(){return this.multiplyUnsafe(u).is0()}isTorsionFree(){return M.unsafeLadder(this,n).is0()}toAffine(e){const{ex:t,ey:n,ez:i}=this,o=this.is0();null==e&&(e=o?Se:r.inv(i));const s=l(t*e),a=l(n*e),u=l(i*e);if(o)return{x:be,y:_e};if(u!==_e)throw new Error("invZ was invalid");return{x:s,y:a}}clearCofactor(){const{h:e}=t;return e===_e?this:this.multiplyUnsafe(e)}static fromHex(e,n=!1){const{d:i,a:o}=t,s=r.BYTES,a=(e=Q("pointHex",e,s)).slice(),u=e[s-1];a[s-1]=-129&u;const d=q(a);d===be||y(d,n?c:r.ORDER);const h=l(d*d),p=l(h-_e),g=l(i*h-o);let{isValid:m,value:v}=f(p,g);if(!m)throw new Error("Point.fromHex: invalid y coordinate");const w=(v&_e)===_e,b=!!(128&u);if(!n&&v===be&&b)throw new Error("Point.fromHex: x=0 and x_0=1");return b!==w&&(v=l(-v)),_.fromAffine({x:v,y:d})}static fromPrivateKey(e){return E(e).point}toRawBytes(){const{x:e,y:t}=this.toAffine(),n=K(t,r.BYTES);return n[n.length-1]|=e&_e?128:0,n}toHex(){return z(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,_e,l(t.Gx*t.Gy)),_.ZERO=new _(be,_e,_e,be);const{BASE:x,ZERO:S}=_,M=ve(_,8*a);function k(e){return ae(e,n)}function O(e){return k(q(e))}function E(e){const t=a;e=Q("private key",e,t);const r=Q("hashed private key",o(e),2*t),n=d(r.slice(0,t)),i=r.slice(t,2*t),s=O(n),u=x.multiply(s),c=u.toRawBytes();return{head:n,prefix:i,scalar:s,point:u,pointBytes:c}}function I(e=new Uint8Array,...t){const r=V(...t);return O(o(h(r,Q("context",e),!!i)))}const A=Me;return x._setWindowSize(8),{CURVE:t,getPublicKey:function(e){return E(e).pointBytes},sign:function(e,t,n={}){e=Q("message",e),i&&(e=i(e));const{prefix:o,scalar:s,pointBytes:u}=E(t),c=I(n.context,o,e),l=x.multiply(c).toRawBytes(),f=k(c+I(n.context,l,u,e)*s);return v(f),Q("result",V(l,K(f,r.BYTES)),2*a)},verify:function(e,t,n,o=A){const{context:s,zip215:a}=o,u=r.BYTES;e=Q("signature",e,2*u),t=Q("message",t),i&&(t=i(t));const c=q(e.slice(u,2*u));let l,f,d;try{l=_.fromHex(n,a),f=_.fromHex(e.slice(0,u),a),d=x.multiplyUnsafe(c)}catch(e){return!1}if(!a&&l.isSmallOrder())return!1;const h=I(s,f.toRawBytes(),l.toRawBytes(),t);return f.add(l.multiplyUnsafe(h)).subtract(d).clearCofactor().equals(_.ZERO)},ExtendedPoint:_,utils:{getExtendedPublicKey:E,randomPrivateKey:()=>s(r.BYTES),precompute:(e=8,t=_.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)}}}const Oe=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Ee=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Ie=(BigInt(0),BigInt(1)),Ae=BigInt(2),Ce=BigInt(5),je=BigInt(10),Ne=BigInt(20),Te=BigInt(40),Pe=BigInt(80);const Re=he(Oe,void 0,!0),De={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Re,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:P,randomBytes:v,adjustScalarBytes:function(e){return e[0]&=248,e[31]&=127,e[31]|=64,e},uvRatio:function(e,t){const r=Oe,n=ae(t*t*t,r),i=ae(n*n*t,r);let o=ae(e*n*function(e){const t=Oe,r=e*e%t*e%t,n=ce(r,Ae,t)*r%t,i=ce(n,Ie,t)*e%t,o=ce(i,Ce,t)*i%t,s=ce(o,je,t)*o%t,a=ce(s,Ne,t)*s%t,u=ce(a,Te,t)*a%t,c=ce(u,Pe,t)*u%t,l=ce(c,Pe,t)*u%t,f=ce(l,je,t)*o%t;return{pow_p_5_8:ce(f,Ae,t)*e%t,b2:r}}(e*i).pow_p_5_8,r);const s=ae(t*o*o,r),a=o,u=ae(o*Ee,r),c=s===e,l=s===ae(-e,r),f=s===ae(-e*Ee,r);return c&&(o=a),(l||f)&&(o=u),(ae(o,r)&te)===te&&(o=ae(-o,r)),{isValid:c||l,value:o}}},Le=ke(De);const Be=(Re.ORDER+BigInt(3))/BigInt(8);Re.pow(Ae,Be),Re.sqrt(Re.neg(Re.ONE)),Re.ORDER,BigInt(5),BigInt(8),BigInt(486662),function(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");const r=e.sqrt(t);e.isOdd(r)&&e.neg(r)}(Re,Re.neg(BigInt(486664))),BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var ze=r(6097),Ue=r.n(ze),We=r(1122),Fe=r.n(We);const qe=(e,t,r)=>e&t^e&r^t&r,He=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]),Ke=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qe=new Uint32Array(64);class Ve extends w{constructor(){super(64,32,8,!1),this.A=0|Ke[0],this.B=0|Ke[1],this.C=0|Ke[2],this.D=0|Ke[3],this.E=0|Ke[4],this.F=0|Ke[5],this.G=0|Ke[6],this.H=0|Ke[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:o,G:s,H:a}=this;return[e,t,r,n,i,o,s,a]}set(e,t,r,n,i,o,s,a){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(e,t){for(let r=0;r<16;r++,t+=4)Qe[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Qe[e-15],r=Qe[e-2],n=d(t,7)^d(t,18)^t>>>3,i=d(r,17)^d(r,19)^r>>>10;Qe[e]=i+Qe[e-7]+n+Qe[e-16]|0}let{A:r,B:n,C:i,D:o,E:s,F:a,G:u,H:c}=this;for(let e=0;e<64;e++){const t=c+(d(s,6)^d(s,11)^d(s,25))+((l=s)&a^~l&u)+He[e]+Qe[e]|0,f=(d(r,2)^d(r,13)^d(r,22))+qe(r,n,i)|0;c=u,u=a,a=s,s=o+t|0,o=i,i=n,n=r,r=t+f|0}var l;r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,s=s+this.E|0,a=a+this.F|0,u=u+this.G|0,c=c+this.H|0,this.set(r,n,i,o,s,a,u,c)}roundClean(){Qe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const $e=y((()=>new Ve));var Ye=r(6710),Ge=r(6111),Ze=r(69);r(5640);class Je extends TypeError{constructor(e,t){let r;const{message:n,...i}=e,{path:o}=e;super(0===o.length?n:"At path: "+o.join(".")+" -- "+n),Object.assign(this,i),this.name=this.constructor.name,this.failures=()=>{var n;return null!=(n=r)?n:r=[e,...t()]}}}function Xe(e){return"object"==typeof e&&null!=e}function et(e){return"string"==typeof e?JSON.stringify(e):""+e}function tt(e,t,r,n){if(!0===e)return;!1===e?e={}:"string"==typeof e&&(e={message:e});const{path:i,branch:o}=t,{type:s}=r,{refinement:a,message:u="Expected a value of type `"+s+"`"+(a?" with refinement `"+a+"`":"")+", but received: `"+et(n)+"`"}=e;return{value:n,type:s,refinement:a,key:i[i.length-1],path:i,branch:o,...e,message:u}}function*rt(e,t,r,n){var i;Xe(i=e)&&"function"==typeof i[Symbol.iterator]||(e=[e]);for(const i of e){const e=tt(i,t,r,n);e&&(yield e)}}function*nt(e,t,r={}){const{path:n=[],branch:i=[e],coerce:o=!1,mask:s=!1}=r,a={path:n,branch:i};if(o&&(e=t.coercer(e,a),s&&"type"!==t.type&&Xe(t.schema)&&Xe(e)&&!Array.isArray(e)))for(const r in e)void 0===t.schema[r]&&delete e[r];let u=!0;for(const r of t.validator(e,a))u=!1,yield[r,void 0];for(let[r,c,l]of t.entries(e,a)){const t=nt(c,l,{path:void 0===r?n:[...n,r],branch:void 0===r?i:[...i,c],coerce:o,mask:s});for(const n of t)n[0]?(u=!1,yield[n[0],void 0]):o&&(c=n[1],void 0===r?e=c:e instanceof Map?e.set(r,c):e instanceof Set?e.add(c):Xe(e)&&(e[r]=c))}if(u)for(const r of t.refiner(e,a))u=!1,yield[r,void 0];u&&(yield[void 0,e])}class it{constructor(e){const{type:t,schema:r,validator:n,refiner:i,coercer:o=(e=>e),entries:s=function*(){}}=e;this.type=t,this.schema=r,this.entries=s,this.coercer=o,this.validator=n?(e,t)=>rt(n(e,t),t,this,e):()=>[],this.refiner=i?(e,t)=>rt(i(e,t),t,this,e):()=>[]}assert(e){return ot(e,this)}create(e){return st(e,this)}is(e){return at(e,this)}mask(e){return function(e,t){const r=ut(e,t,{coerce:!0,mask:!0});if(r[0])throw r[0];return r[1]}(e,this)}validate(e,t={}){return ut(e,this,t)}}function ot(e,t){const r=ut(e,t);if(r[0])throw r[0]}function st(e,t){const r=ut(e,t,{coerce:!0});if(r[0])throw r[0];return r[1]}function at(e,t){return!ut(e,t)[0]}function ut(e,t,r={}){const n=nt(e,t,r),i=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(n);return i[0]?[new Je(i[0],(function*(){for(const e of n)e[0]&&(yield e[0])})),void 0]:[void 0,i[1]]}function ct(e,t){return new it({type:e,schema:null,validator:t})}function lt(e){return new it({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,n]of t.entries())yield[r,n,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||"Expected an array value, but received: "+et(e)})}function ft(){return ct("boolean",(e=>"boolean"==typeof e))}function dt(e){return ct("instance",(t=>t instanceof e||"Expected a `"+e.name+"` instance, but received: "+et(t)))}function ht(e){const t=et(e),r=typeof e;return new it({type:"literal",schema:"string"===r||"number"===r||"boolean"===r?e:null,validator:r=>r===e||"Expected the literal `"+t+"`, but received: "+et(r)})}function pt(e){return new it({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function gt(){return ct("number",(e=>"number"==typeof e&&!isNaN(e)||"Expected a number, but received: "+et(e)))}function mt(e){return new it({...e,validator:(t,r)=>void 0===t||e.validator(t,r),refiner:(t,r)=>void 0===t||e.refiner(t,r)})}function yt(e,t){return new it({type:"record",schema:null,*entries(r){if(Xe(r))for(const n in r){const i=r[n];yield[n,n,e],yield[n,i,t]}},validator:e=>Xe(e)||"Expected an object, but received: "+et(e)})}function vt(){return ct("string",(e=>"string"==typeof e||"Expected a string, but received: "+et(e)))}function wt(e){const t=ct("never",(()=>!1));return new it({type:"tuple",schema:null,*entries(r){if(Array.isArray(r)){const n=Math.max(e.length,r.length);for(let i=0;iArray.isArray(e)||"Expected an array, but received: "+et(e)})}function bt(e){const t=Object.keys(e);return new it({type:"type",schema:e,*entries(r){if(Xe(r))for(const n of t)yield[n,r[n],e[n]]},validator:e=>Xe(e)||"Expected an object, but received: "+et(e)})}function _t(e){const t=e.map((e=>e.type)).join(" | ");return new it({type:"union",schema:null,validator(r,n){const i=[];for(const t of e){const[...e]=nt(r,t,n),[o]=e;if(!o[0])return[];for(const[t]of e)t&&i.push(t)}return["Expected the value to satisfy a union of `"+t+"`, but received: "+et(r),...i]}})}function xt(){return ct("unknown",(()=>!0))}function St(e,t,r){return new it({...e,coercer:(n,i)=>at(n,t)?e.coercer(r(n,i),i):e.coercer(n,i)})}var Mt=r(3066),kt=r.n(Mt),Ot=r(6272),Et=r(7886);const[It,At,Ct]=[[],[],[]],jt=BigInt(0),Nt=BigInt(1),Tt=BigInt(2),Pt=BigInt(7),Rt=BigInt(256),Dt=BigInt(113);for(let e=0,t=Nt,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],It.push(2*(5*n+r)),At.push((e+1)*(e+2)/2%64);let i=jt;for(let e=0;e<7;e++)t=(t<>Pt)*Dt)%Rt,t&Tt&&(i^=Nt<<(Nt<r>32?O(e,t,r):M(e,t,r),Ut=(e,t,r)=>r>32?E(e,t,r):k(e,t,r);class Wt extends m{constructor(e,t,r,n=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,o(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){!function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,i=(t+2)%10,o=r[i],s=r[i+1],a=zt(o,s,1)^r[n],u=Ut(o,s,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],i=e[3];for(let r=0;r<24;r++){const n=At[r],o=zt(t,i,n),s=Ut(t,i,n),a=It[r];t=e[a],i=e[a+1],e[a]=o,e[a+1]=s}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=Lt[n],e[1]^=Bt[n]}r.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){a(this);const{blockLen:t,state:r}=this,n=(e=p(e)).length;for(let i=0;i=r&&this.keccak();const o=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+o),n),this.posOut+=o,n+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return o(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(u(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:o}=this;return e||(e=new Wt(t,r,n,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=o,e.destroyed=this.destroyed,e}}const Ft=((e,t,r)=>y((()=>new Wt(t,e,r))))(1,136,32);class qt extends m{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");o(e.outputLen),o(e.blockLen)}(e);const r=p(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let e=0;enew qt(e,t).update(r).digest();Ht.create=(e,t)=>new qt(e,t);const{Ph:Kt,aT:Qt}=n,Vt={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=Vt;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(128&n[0])throw new t("Invalid signature integer: negative");if(0===n[0]&&!(128&n[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Kt(n),l:e.subarray(r+2)}},toSig(e){const{Err:t}=Vt,r="string"==typeof e?Qt(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||48!=r[0])throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");const{d:i,l:o}=Vt._parseInt(r.subarray(2)),{d:s,l:a}=Vt._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,r=e=>{const t=e.toString(16);return 1&t.length?`0${t}`:t},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,s=i.length/2,a=r(o),u=r(s);return`30${r(s+o+4)}02${u}${i}02${a}${n}`}},$t=BigInt(0),Yt=BigInt(1),Gt=(BigInt(2),BigInt(3));function Zt(e){const t=function(e){const t=we(e);return X(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(e){return ae(e,n)}function a(e){return le(e,n)}const{ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:l,isWithinCurveOrder:f}=function(e){const t=function(e){const t=we(e);X(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof r||"bigint"!=typeof r.beta||"function"!=typeof r.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:r}=t,n=t.toBytes||((e,t,n)=>{const i=t.toAffine();return V(Uint8Array.from([4]),r.toBytes(i.x),r.toBytes(i.y))}),i=t.fromBytes||(e=>{const t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function o(e){const{a:n,b:i}=t,o=r.sqr(e),s=r.mul(o,e);return r.add(r.add(s,r.mul(e,n)),i)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"==typeof e&&$tr.eql(e,r.ZERO);return i(t)&&i(n)?f.ZERO:new f(t,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(f.fromAffine)}static fromHex(e){const t=f.fromAffine(i(Q("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return f.BASE.multiply(u(e))}_setWindowSize(e){this._WINDOW_SIZE=e,c.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:n}=this.toAffine();if(!r.isValid(e)||!r.isValid(n))throw new Error("bad point: x or y not FE");const i=r.sqr(n),s=o(e);if(!r.eql(i,s))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){l(e);const{px:t,py:n,pz:i}=this,{px:o,py:s,pz:a}=e,u=r.eql(r.mul(t,a),r.mul(o,i)),c=r.eql(r.mul(n,a),r.mul(s,i));return u&&c}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){const{a:e,b:n}=t,i=r.mul(n,Gt),{px:o,py:s,pz:a}=this;let u=r.ZERO,c=r.ZERO,l=r.ZERO,d=r.mul(o,o),h=r.mul(s,s),p=r.mul(a,a),g=r.mul(o,s);return g=r.add(g,g),l=r.mul(o,a),l=r.add(l,l),u=r.mul(e,l),c=r.mul(i,p),c=r.add(u,c),u=r.sub(h,c),c=r.add(h,c),c=r.mul(u,c),u=r.mul(g,u),l=r.mul(i,l),p=r.mul(e,p),g=r.sub(d,p),g=r.mul(e,g),g=r.add(g,l),l=r.add(d,d),d=r.add(l,d),d=r.add(d,p),d=r.mul(d,g),c=r.add(c,d),p=r.mul(s,a),p=r.add(p,p),d=r.mul(p,g),u=r.sub(u,d),l=r.mul(p,h),l=r.add(l,l),l=r.add(l,l),new f(u,c,l)}add(e){l(e);const{px:n,py:i,pz:o}=this,{px:s,py:a,pz:u}=e;let c=r.ZERO,d=r.ZERO,h=r.ZERO;const p=t.a,g=r.mul(t.b,Gt);let m=r.mul(n,s),y=r.mul(i,a),v=r.mul(o,u),w=r.add(n,i),b=r.add(s,a);w=r.mul(w,b),b=r.add(m,y),w=r.sub(w,b),b=r.add(n,o);let _=r.add(s,u);return b=r.mul(b,_),_=r.add(m,v),b=r.sub(b,_),_=r.add(i,o),c=r.add(a,u),_=r.mul(_,c),c=r.add(y,v),_=r.sub(_,c),h=r.mul(p,b),c=r.mul(g,v),h=r.add(c,h),c=r.sub(y,h),h=r.add(y,h),d=r.mul(c,h),y=r.add(m,m),y=r.add(y,m),v=r.mul(p,v),b=r.mul(g,b),y=r.add(y,v),v=r.sub(m,v),v=r.mul(p,v),b=r.add(b,v),m=r.mul(y,b),d=r.add(d,m),m=r.mul(_,b),c=r.mul(w,c),c=r.sub(c,m),m=r.mul(w,y),h=r.mul(_,h),h=r.add(h,m),new f(c,d,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(f.ZERO)}wNAF(e){return h.wNAFCached(this,c,e,(e=>{const t=r.invertBatch(e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(f.fromAffine)}))}multiplyUnsafe(e){const n=f.ZERO;if(e===$t)return n;if(a(e),e===Yt)return this;const{endo:i}=t;if(!i)return h.unsafeLadder(this,e);let{k1neg:o,k1:s,k2neg:u,k2:c}=i.splitScalar(e),l=n,d=n,p=this;for(;s>$t||c>$t;)s&Yt&&(l=l.add(p)),c&Yt&&(d=d.add(p)),p=p.double(),s>>=Yt,c>>=Yt;return o&&(l=l.negate()),u&&(d=d.negate()),d=new f(r.mul(d.px,i.beta),d.py,d.pz),l.add(d)}multiply(e){a(e);let n,i,o=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:a,k2:u}=s.splitScalar(o);let{p:c,f:l}=this.wNAF(t),{p:d,f:p}=this.wNAF(u);c=h.constTimeNegate(e,c),d=h.constTimeNegate(a,d),d=new f(r.mul(d.px,s.beta),d.py,d.pz),n=c.add(d),i=l.add(p)}else{const{p:e,f:t}=this.wNAF(o);n=e,i=t}return f.normalizeZ([n,i])[0]}multiplyAndAddUnsafe(e,t,r){const n=f.BASE,i=(e,t)=>t!==$t&&t!==Yt&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),o=i(this,t).add(i(e,r));return o.is0()?void 0:o}toAffine(e){const{px:t,py:n,pz:i}=this,o=this.is0();null==e&&(e=o?r.ONE:r.inv(i));const s=r.mul(t,e),a=r.mul(n,e),u=r.mul(i,e);if(o)return{x:r.ZERO,y:r.ZERO};if(!r.eql(u,r.ONE))throw new Error("invZ was invalid");return{x:s,y:a}}isTorsionFree(){const{h:e,isTorsionFree:r}=t;if(e===Yt)return!0;if(r)return r(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:r}=t;return e===Yt?this:r?r(f,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),n(f,this,e)}toHex(e=!0){return z(this.toRawBytes(e))}}f.BASE=new f(t.Gx,t.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);const d=t.nBitLength,h=ve(f,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:u,weierstrassEquation:o,isWithinCurveOrder:s}}({...t,toBytes(e,t,n){const i=t.toAffine(),o=r.toBytes(i.x),s=V;return n?s(Uint8Array.from([t.hasEvenY()?2:3]),o):s(Uint8Array.from([4]),o,r.toBytes(i.y))},fromBytes(e){const t=e.length,n=e[0],s=e.subarray(1);if(t!==i||2!==n&&3!==n){if(t===o&&4===n)return{x:r.fromBytes(s.subarray(0,r.BYTES)),y:r.fromBytes(s.subarray(r.BYTES,2*r.BYTES))};throw new Error(`Point of length ${t} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}{const e=F(s);if(!($t<(a=e)&&az(H(e,t.nByteLength));function h(e){return e>n>>Yt}const p=(e,t,r)=>F(e.slice(t,r));class g{constructor(e,t,r){this.r=e,this.s=t,this.recovery=r,this.assertValidity()}static fromCompact(e){const r=t.nByteLength;return e=Q("compactSignature",e,2*r),new g(p(e,0,r),p(e,r,2*r))}static fromDER(e){const{r:t,s:r}=Vt.toSig(Q("DER",e));return new g(t,r)}assertValidity(){if(!f(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!f(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){const{r:n,s:i,recovery:o}=this,c=w(Q("msgHash",e));if(null==o||![0,1,2,3].includes(o))throw new Error("recovery id invalid");const l=2===o||3===o?n+t.n:n;if(l>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const f=1&o?"03":"02",h=u.fromHex(f+d(l)),p=a(l),g=s(-c*p),m=s(i*p),y=u.BASE.multiplyAndAddUnsafe(h,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return W(this.toDERHex())}toDERHex(){return Vt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return W(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const m={isValidPrivateKey(e){try{return c(e),!0}catch(e){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const e=ge(t.n);return function(e,t,r=!1){const n=e.length,i=pe(t),o=ge(t);if(n<16||n1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);const s=ae(r?F(e):q(e),t-te)+te;return r?K(s,i):H(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=u.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function y(e){const t=e instanceof Uint8Array,r="string"==typeof e,n=(t||r)&&e.length;return t?n===i||n===o:r?n===2*i||n===2*o:e instanceof u}const v=t.bits2int||function(e){const r=F(e),n=8*e.length-t.nBitLength;return n>0?r>>BigInt(n):r},w=t.bits2int_modN||function(e){return s(v(e))},b=$(t.nBitLength);function _(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!($t<=e&&ee in i)))throw new Error("sign() legacy options not supported");const{hash:o,randomBytes:l}=t;let{lowS:d,prehash:p,extraEntropy:m}=i;null==d&&(d=!0),e=Q("msgHash",e),p&&(e=Q("prehashed msgHash",o(e)));const y=w(e),b=c(n),S=[_(b),_(y)];if(null!=m){const e=!0===m?l(r.BYTES):m;S.push(Q("extraEntropy",e))}const M=V(...S),k=y;return{seed:M,k2sig:function(e){const t=v(e);if(!f(t))return;const r=a(t),n=u.BASE.multiply(t).toAffine(),i=s(n.x);if(i===$t)return;const o=s(r*s(k+i*b));if(o===$t)return;let c=(n.x===i?0:2)|Number(n.y&Yt),l=o;return d&&h(o)&&(l=function(e){return h(e)?s(-e):e}(o),c^=1),new g(i,l,c)}}}(e,n,i),d=t;return Z(d.hash.outputLen,d.nByteLength,d.hmac)(o,l)},verify:function(e,r,n,i=S){const o=e;if(r=Q("msgHash",r),n=Q("publicKey",n),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:l}=i;let f,d;try{if("string"==typeof o||o instanceof Uint8Array)try{f=g.fromDER(o)}catch(e){if(!(e instanceof Vt.Err))throw e;f=g.fromCompact(o)}else{if("object"!=typeof o||"bigint"!=typeof o.r||"bigint"!=typeof o.s)throw new Error("PARSE");{const{r:e,s:t}=o;f=new g(e,t)}}d=u.fromHex(n)}catch(e){if("PARSE"===e.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&f.hasHighS())return!1;l&&(r=t.hash(r));const{r:h,s:p}=f,m=w(r),y=a(p),v=s(m*y),b=s(h*y),_=u.BASE.multiplyAndAddUnsafe(d,v,b)?.toAffine();return!!_&&s(_.x)===h},ProjectivePoint:u,Signature:g,utils:m}}function Jt(e){return{hash:e,hmac:(t,...r)=>Ht(e,t,g(...r)),randomBytes:v}}BigInt(4);const Xt=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),er=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),tr=BigInt(1),rr=BigInt(2),nr=(e,t)=>(e+t/rr)/t;const ir=he(Xt,void 0,void 0,{sqrt:function(e){const t=Xt,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),u=BigInt(88),c=e*e*e%t,l=c*c*e%t,f=ce(l,r,t)*l%t,d=ce(f,r,t)*l%t,h=ce(d,rr,t)*c%t,p=ce(h,i,t)*h%t,g=ce(p,o,t)*p%t,m=ce(g,a,t)*g%t,y=ce(m,u,t)*m%t,v=ce(y,a,t)*g%t,w=ce(v,r,t)*l%t,b=ce(w,s,t)*p%t,_=ce(b,n,t)*c%t,x=ce(_,rr,t);if(!ir.eql(ir.sqr(x),e))throw new Error("Cannot find square root");return x}}),or=function(e,t){const r=t=>Zt({...e,...Jt(t)});return Object.freeze({...r(t),create:r})}({a:BigInt(0),b:BigInt(7),Fp:ir,n:er,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=er,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-tr*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=nr(o*e,t),u=nr(-n*e,t);let c=ae(e-a*r-u*i,t),l=ae(-a*n-u*o,t);const f=c>s,d=l>s;if(f&&(c=t-c),d&&(l=t-l),c>s||l>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:c,k2neg:d,k2:l}}}},$e);BigInt(0),or.ProjectivePoint;var sr=r(5640);const ar=Le.utils.randomPrivateKey,ur=()=>{const e=Le.utils.randomPrivateKey(),t=cr(e),r=new Uint8Array(64);return r.set(e),r.set(t,32),{publicKey:t,secretKey:r}},cr=Le.getPublicKey;function lr(e){try{return Le.ExtendedPoint.fromHex(e),!0}catch{return!1}}const fr=(e,t)=>Le.sign(e,t.slice(0,32)),dr=Le.verify,hr=e=>i.Buffer.isBuffer(e)?e:e instanceof Uint8Array?i.Buffer.from(e.buffer,e.byteOffset,e.byteLength):i.Buffer.from(e);class pr{constructor(e){Object.assign(this,e)}encode(){return i.Buffer.from((0,Ye.serialize)(mr,this))}static decode(e){return(0,Ye.deserialize)(mr,this,e)}static decodeUnchecked(e){return(0,Ye.deserializeUnchecked)(mr,this,e)}}class gr extends pr{constructor(e){if(super(e),this.enum="",1!==Object.keys(e).length)throw new Error("Enum can only take single value");Object.keys(e).map((e=>{this.enum=e}))}}const mr=new Map;var yr;let vr;const wr=32,br=32;let _r=1;vr=Symbol.toStringTag;class xr extends pr{constructor(e){if(super({}),this._bn=void 0,function(e){return void 0!==e._bn}(e))this._bn=e._bn;else{if("string"==typeof e){const t=Fe().decode(e);if(t.length!=br)throw new Error("Invalid public key input");this._bn=new(Ue())(t)}else this._bn=new(Ue())(e);if(this._bn.byteLength()>br)throw new Error("Invalid public key input")}}static unique(){const e=new xr(_r);return _r+=1,new xr(e.toBuffer())}equals(e){return this._bn.eq(e._bn)}toBase58(){return Fe().encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){const e=this.toBuffer();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}toBuffer(){const e=this._bn.toArrayLike(i.Buffer);if(e.length===br)return e;const t=i.Buffer.alloc(32);return e.copy(t,32-e.length),t}get[vr](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(e,t,r){const n=i.Buffer.concat([e.toBuffer(),i.Buffer.from(t),r.toBuffer()]),o=$e(n);return new xr(o)}static createProgramAddressSync(e,t){let r=i.Buffer.alloc(0);e.forEach((function(e){if(e.length>wr)throw new TypeError("Max seed length exceeded");r=i.Buffer.concat([r,hr(e)])})),r=i.Buffer.concat([r,t.toBuffer(),i.Buffer.from("ProgramDerivedAddress")]);const n=$e(r);if(lr(n))throw new Error("Invalid seeds, address must fall off the curve");return new xr(n)}static async createProgramAddress(e,t){return this.createProgramAddressSync(e,t)}static findProgramAddressSync(e,t){let r,n=255;for(;0!=n;){try{const o=e.concat(i.Buffer.from([n]));r=this.createProgramAddressSync(o,t)}catch(e){if(e instanceof TypeError)throw e;n--;continue}return[r,n]}throw new Error("Unable to find a viable program address nonce")}static async findProgramAddress(e,t){return this.findProgramAddressSync(e,t)}static isOnCurve(e){return lr(new xr(e).toBytes())}}yr=xr,xr.default=new yr("11111111111111111111111111111111"),mr.set(xr,{kind:"struct",fields:[["_bn","u256"]]});class Sr{constructor(e){if(this._publicKey=void 0,this._secretKey=void 0,e){const t=hr(e);if(64!==e.length)throw new Error("bad secret key size");this._publicKey=t.slice(32,64),this._secretKey=t.slice(0,32)}else this._secretKey=hr(ar()),this._publicKey=hr(cr(this._secretKey))}get publicKey(){return new xr(this._publicKey)}get secretKey(){return i.Buffer.concat([this._secretKey,this._publicKey],64)}}const Mr=new xr("BPFLoader1111111111111111111111111111111111"),kr=1232,Or=127,Er=64;class Ir extends Error{constructor(e){super(`Signature ${e} has expired: block height exceeded.`),this.signature=void 0,this.signature=e}}Object.defineProperty(Ir.prototype,"name",{value:"TransactionExpiredBlockheightExceededError"});class Ar extends Error{constructor(e,t){super(`Transaction was not confirmed in ${t.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${e} using the Solana Explorer or CLI tools.`),this.signature=void 0,this.signature=e}}Object.defineProperty(Ar.prototype,"name",{value:"TransactionExpiredTimeoutError"});class Cr extends Error{constructor(e){super(`Signature ${e} has expired: the nonce is no longer valid.`),this.signature=void 0,this.signature=e}}Object.defineProperty(Cr.prototype,"name",{value:"TransactionExpiredNonceInvalidError"});class jr{constructor(e,t){this.staticAccountKeys=void 0,this.accountKeysFromLookups=void 0,this.staticAccountKeys=e,this.accountKeysFromLookups=t}keySegments(){const e=[this.staticAccountKeys];return this.accountKeysFromLookups&&(e.push(this.accountKeysFromLookups.writable),e.push(this.accountKeysFromLookups.readonly)),e}get(e){for(const t of this.keySegments()){if(e256)throw new Error("Account index overflow encountered during compilation");const t=new Map;this.keySegments().flat().forEach(((e,r)=>{t.set(e.toBase58(),r)}));const r=e=>{const r=t.get(e.toBase58());if(void 0===r)throw new Error("Encountered an unknown instruction account key during compilation");return r};return e.map((e=>({programIdIndex:r(e.programId),accountKeyIndexes:e.keys.map((e=>r(e.pubkey))),data:e.data})))}}const Nr=(e="publicKey")=>Ge.av(32,e),Tr=(e="signature")=>Ge.av(64,e),Pr=(e="string")=>{const t=Ge.w3([Ge.DH("length"),Ge.DH("lengthPadding"),Ge.av(Ge.cY(Ge.DH(),-8),"chars")],e),r=t.decode.bind(t),n=t.encode.bind(t),o=t;return o.decode=(e,t)=>r(e,t).chars.toString(),o.encode=(e,t,r)=>{const o={chars:i.Buffer.from(e,"utf8")};return n(o,t,r)},o.alloc=e=>Ge.DH().span+Ge.DH().span+i.Buffer.from(e,"utf8").length,o};function Rr(e,t){const r=e=>{if(e.span>=0)return e.span;if("function"==typeof e.alloc)return e.alloc(t[e.property]);if("count"in e&&"elementLayout"in e){const n=t[e.property];if(Array.isArray(n))return n.length*r(e.elementLayout)}else if("fields"in e)return Rr({layout:e},t[e.property]);return 0};let n=0;return e.layout.fields.forEach((e=>{n+=r(e)})),n}function Dr(e){let t=0,r=0;for(;;){let n=e.shift();if(t|=(127&n)<<7*r,r+=1,!(128&n))break}return t}function Lr(e,t){let r=t;for(;;){let t=127&r;if(r>>=7,0==r){e.push(t);break}t|=128,e.push(t)}}function Br(e,t){if(!e)throw new Error(t||"Assertion failed")}class zr{constructor(e,t){this.payer=void 0,this.keyMetaMap=void 0,this.payer=e,this.keyMetaMap=t}static compile(e,t){const r=new Map,n=e=>{const t=e.toBase58();let n=r.get(t);return void 0===n&&(n={isSigner:!1,isWritable:!1,isInvoked:!1},r.set(t,n)),n},i=n(t);i.isSigner=!0,i.isWritable=!0;for(const t of e){n(t.programId).isInvoked=!0;for(const e of t.keys){const t=n(e.pubkey);t.isSigner||=e.isSigner,t.isWritable||=e.isWritable}}return new zr(t,r)}getMessageComponents(){const e=[...this.keyMetaMap.entries()];Br(e.length<=256,"Max static account keys length exceeded");const t=e.filter((([,e])=>e.isSigner&&e.isWritable)),r=e.filter((([,e])=>e.isSigner&&!e.isWritable)),n=e.filter((([,e])=>!e.isSigner&&e.isWritable)),i=e.filter((([,e])=>!e.isSigner&&!e.isWritable)),o={numRequiredSignatures:t.length+r.length,numReadonlySignedAccounts:r.length,numReadonlyUnsignedAccounts:i.length};{Br(t.length>0,"Expected at least one writable signer key");const[e]=t[0];Br(e===this.payer.toBase58(),"Expected first writable signer key to be the fee payer")}return[o,[...t.map((([e])=>new xr(e))),...r.map((([e])=>new xr(e))),...n.map((([e])=>new xr(e))),...i.map((([e])=>new xr(e)))]]}extractTableLookup(e){const[t,r]=this.drainKeysFoundInLookupTable(e.state.addresses,(e=>!e.isSigner&&!e.isInvoked&&e.isWritable)),[n,i]=this.drainKeysFoundInLookupTable(e.state.addresses,(e=>!e.isSigner&&!e.isInvoked&&!e.isWritable));if(0!==t.length||0!==n.length)return[{accountKey:e.key,writableIndexes:t,readonlyIndexes:n},{writable:r,readonly:i}]}drainKeysFoundInLookupTable(e,t){const r=new Array,n=new Array;for(const[i,o]of this.keyMetaMap.entries())if(t(o)){const t=new xr(i),o=e.findIndex((e=>e.equals(t)));o>=0&&(Br(o<256,"Max lookup table index exceeded"),r.push(o),n.push(t),this.keyMetaMap.delete(i))}return[r,n]}}class Ur{constructor(e){this.header=void 0,this.accountKeys=void 0,this.recentBlockhash=void 0,this.instructions=void 0,this.indexToProgramIds=new Map,this.header=e.header,this.accountKeys=e.accountKeys.map((e=>new xr(e))),this.recentBlockhash=e.recentBlockhash,this.instructions=e.instructions,this.instructions.forEach((e=>this.indexToProgramIds.set(e.programIdIndex,this.accountKeys[e.programIdIndex])))}get version(){return"legacy"}get staticAccountKeys(){return this.accountKeys}get compiledInstructions(){return this.instructions.map((e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:Fe().decode(e.data)})))}get addressTableLookups(){return[]}getAccountKeys(){return new jr(this.staticAccountKeys)}static compile(e){const t=zr.compile(e.instructions,e.payerKey),[r,n]=t.getMessageComponents(),i=new jr(n).compileInstructions(e.instructions).map((e=>({programIdIndex:e.programIdIndex,accounts:e.accountKeyIndexes,data:Fe().encode(e.data)})));return new Ur({header:r,accountKeys:n,recentBlockhash:e.recentBlockhash,instructions:i})}isAccountSigner(e){return e=this.header.numRequiredSignatures?e-t!this.isProgramId(t)))}serialize(){const e=this.accountKeys.length;let t=[];Lr(t,e);const r=this.instructions.map((e=>{const{accounts:t,programIdIndex:r}=e,n=Array.from(Fe().decode(e.data));let o=[];Lr(o,t.length);let s=[];return Lr(s,n.length),{programIdIndex:r,keyIndicesCount:i.Buffer.from(o),keyIndices:t,dataLength:i.Buffer.from(s),data:n}}));let n=[];Lr(n,r.length);let o=i.Buffer.alloc(kr);i.Buffer.from(n).copy(o);let s=n.length;r.forEach((e=>{const t=Ge.w3([Ge.u8("programIdIndex"),Ge.av(e.keyIndicesCount.length,"keyIndicesCount"),Ge.O6(Ge.u8("keyIndex"),e.keyIndices.length,"keyIndices"),Ge.av(e.dataLength.length,"dataLength"),Ge.O6(Ge.u8("userdatum"),e.data.length,"data")]).encode(e,o,s);s+=t})),o=o.slice(0,s);const a=Ge.w3([Ge.av(1,"numRequiredSignatures"),Ge.av(1,"numReadonlySignedAccounts"),Ge.av(1,"numReadonlyUnsignedAccounts"),Ge.av(t.length,"keyCount"),Ge.O6(Nr("key"),e,"keys"),Nr("recentBlockhash")]),u={numRequiredSignatures:i.Buffer.from([this.header.numRequiredSignatures]),numReadonlySignedAccounts:i.Buffer.from([this.header.numReadonlySignedAccounts]),numReadonlyUnsignedAccounts:i.Buffer.from([this.header.numReadonlyUnsignedAccounts]),keyCount:i.Buffer.from(t),keys:this.accountKeys.map((e=>hr(e.toBytes()))),recentBlockhash:Fe().decode(this.recentBlockhash)};let c=i.Buffer.alloc(2048);const l=a.encode(u,c);return o.copy(c,l),c.slice(0,l+o.length)}static from(e){let t=[...e];const r=t.shift();if(r!==(r&Or))throw new Error("Versioned messages must be deserialized with VersionedMessage.deserialize()");const n=t.shift(),o=t.shift(),s=Dr(t);let a=[];for(let e=0;e0)throw new Error("Failed to get account keys because address table lookups were not resolved");return new jr(this.staticAccountKeys,t)}isAccountSigner(e){return e=r?e-re+t.writableIndexes.length),0):e>=this.header.numRequiredSignatures?e-te.key.equals(r.accountKey)));if(!n)throw new Error(`Failed to find address lookup table account for table key ${r.accountKey.toBase58()}`);for(const e of r.writableIndexes){if(!(ee.toBytes())),recentBlockhash:Fe().decode(this.recentBlockhash),instructionsLength:new Uint8Array(r),serializedInstructions:t,addressTableLookupsLength:new Uint8Array(i),serializedAddressTableLookups:n},s);return s.slice(0,a)}serializeInstructions(){let e=0;const t=new Uint8Array(kr);for(const r of this.compiledInstructions){const n=Array();Lr(n,r.accountKeyIndexes.length);const i=Array();Lr(i,r.data.length),e+=Ge.w3([Ge.u8("programIdIndex"),Ge.av(n.length,"encodedAccountKeyIndexesLength"),Ge.O6(Ge.u8(),r.accountKeyIndexes.length,"accountKeyIndexes"),Ge.av(i.length,"encodedDataLength"),Ge.av(r.data.length,"data")]).encode({programIdIndex:r.programIdIndex,encodedAccountKeyIndexesLength:new Uint8Array(n),accountKeyIndexes:r.accountKeyIndexes,encodedDataLength:new Uint8Array(i),data:r.data},t,e)}return t.slice(0,e)}serializeAddressTableLookups(){let e=0;const t=new Uint8Array(kr);for(const r of this.addressTableLookups){const n=Array();Lr(n,r.writableIndexes.length);const i=Array();Lr(i,r.readonlyIndexes.length),e+=Ge.w3([Nr("accountKey"),Ge.av(n.length,"encodedWritableIndexesLength"),Ge.O6(Ge.u8(),r.writableIndexes.length,"writableIndexes"),Ge.av(i.length,"encodedReadonlyIndexesLength"),Ge.O6(Ge.u8(),r.readonlyIndexes.length,"readonlyIndexes")]).encode({accountKey:r.accountKey.toBytes(),encodedWritableIndexesLength:new Uint8Array(n),writableIndexes:r.writableIndexes,encodedReadonlyIndexesLength:new Uint8Array(i),readonlyIndexes:r.readonlyIndexes},t,e)}return t.slice(0,e)}static deserialize(e){let t=[...e];const r=t.shift(),n=r⩔Br(r!==n,"Expected versioned message but received legacy message"),Br(0===n,`Expected versioned message with version 0 but found version ${n}`);const i={numRequiredSignatures:t.shift(),numReadonlySignedAccounts:t.shift(),numReadonlyUnsignedAccounts:t.shift()},o=[],s=Dr(t);for(let e=0;e{const t=Fr.deserializeMessageVersion(e);if("legacy"===t)return Ur.from(e);if(0===t)return Wr.deserialize(e);throw new Error(`Transaction message version ${t} deserialization is not supported`)}};let qr=function(e){return e[e.BLOCKHEIGHT_EXCEEDED=0]="BLOCKHEIGHT_EXCEEDED",e[e.PROCESSED=1]="PROCESSED",e[e.TIMED_OUT=2]="TIMED_OUT",e[e.NONCE_INVALID=3]="NONCE_INVALID",e}({});const Hr=i.Buffer.alloc(Er).fill(0);class Kr{constructor(e){this.keys=void 0,this.programId=void 0,this.data=i.Buffer.alloc(0),this.programId=e.programId,this.keys=e.keys,e.data&&(this.data=e.data)}toJSON(){return{keys:this.keys.map((({pubkey:e,isSigner:t,isWritable:r})=>({pubkey:e.toJSON(),isSigner:t,isWritable:r}))),programId:this.programId.toJSON(),data:[...this.data]}}}class Qr{get signature(){return this.signatures.length>0?this.signatures[0].signature:null}constructor(e){if(this.signatures=[],this.feePayer=void 0,this.instructions=[],this.recentBlockhash=void 0,this.lastValidBlockHeight=void 0,this.nonceInfo=void 0,this.minNonceContextSlot=void 0,this._message=void 0,this._json=void 0,e)if(e.feePayer&&(this.feePayer=e.feePayer),e.signatures&&(this.signatures=e.signatures),Object.prototype.hasOwnProperty.call(e,"nonceInfo")){const{minContextSlot:t,nonceInfo:r}=e;this.minNonceContextSlot=t,this.nonceInfo=r}else if(Object.prototype.hasOwnProperty.call(e,"lastValidBlockHeight")){const{blockhash:t,lastValidBlockHeight:r}=e;this.recentBlockhash=t,this.lastValidBlockHeight=r}else{const{recentBlockhash:t,nonceInfo:r}=e;r&&(this.nonceInfo=r),this.recentBlockhash=t}}toJSON(){return{recentBlockhash:this.recentBlockhash||null,feePayer:this.feePayer?this.feePayer.toJSON():null,nonceInfo:this.nonceInfo?{nonce:this.nonceInfo.nonce,nonceInstruction:this.nonceInfo.nonceInstruction.toJSON()}:null,instructions:this.instructions.map((e=>e.toJSON())),signers:this.signatures.map((({publicKey:e})=>e.toJSON()))}}add(...e){if(0===e.length)throw new Error("No instructions");return e.forEach((e=>{"instructions"in e?this.instructions=this.instructions.concat(e.instructions):"data"in e&&"programId"in e&&"keys"in e?this.instructions.push(e):this.instructions.push(new Kr(e))})),this}compileMessage(){if(this._message&&JSON.stringify(this.toJSON())===JSON.stringify(this._json))return this._message;let e,t,r;if(this.nonceInfo?(e=this.nonceInfo.nonce,t=this.instructions[0]!=this.nonceInfo.nonceInstruction?[this.nonceInfo.nonceInstruction,...this.instructions]:this.instructions):(e=this.recentBlockhash,t=this.instructions),!e)throw new Error("Transaction recentBlockhash required");if(t.length<1&&sr.warn("No instructions provided"),this.feePayer)r=this.feePayer;else{if(!(this.signatures.length>0&&this.signatures[0].publicKey))throw new Error("Transaction fee payer required");r=this.signatures[0].publicKey}for(let e=0;e{e.keys.forEach((e=>{i.push({...e})}));const t=e.programId.toString();n.includes(t)||n.push(t)})),n.forEach((e=>{i.push({pubkey:new xr(e),isSigner:!1,isWritable:!1})}));const o=[];i.forEach((e=>{const t=e.pubkey.toString(),r=o.findIndex((e=>e.pubkey.toString()===t));r>-1?(o[r].isWritable=o[r].isWritable||e.isWritable,o[r].isSigner=o[r].isSigner||e.isSigner):o.push(e)})),o.sort((function(e,t){return e.isSigner!==t.isSigner?e.isSigner?-1:1:e.isWritable!==t.isWritable?e.isWritable?-1:1:e.pubkey.toBase58().localeCompare(t.pubkey.toBase58(),"en",{localeMatcher:"best fit",usage:"sort",sensitivity:"variant",ignorePunctuation:!1,numeric:!1,caseFirst:"lower"})}));const s=o.findIndex((e=>e.pubkey.equals(r)));if(s>-1){const[e]=o.splice(s,1);e.isSigner=!0,e.isWritable=!0,o.unshift(e)}else o.unshift({pubkey:r,isSigner:!0,isWritable:!0});for(const e of this.signatures){const t=o.findIndex((t=>t.pubkey.equals(e.publicKey)));if(!(t>-1))throw new Error(`unknown signer: ${e.publicKey.toString()}`);o[t].isSigner||(o[t].isSigner=!0,sr.warn("Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release."))}let a=0,u=0,c=0;const l=[],f=[];o.forEach((({pubkey:e,isSigner:t,isWritable:r})=>{t?(l.push(e.toString()),a+=1,r||(u+=1)):(f.push(e.toString()),r||(c+=1))}));const d=l.concat(f),h=t.map((e=>{const{data:t,programId:r}=e;return{programIdIndex:d.indexOf(r.toString()),accounts:e.keys.map((e=>d.indexOf(e.pubkey.toString()))),data:Fe().encode(t)}}));return h.forEach((e=>{Br(e.programIdIndex>=0),e.accounts.forEach((e=>Br(e>=0)))})),new Ur({header:{numRequiredSignatures:a,numReadonlySignedAccounts:u,numReadonlyUnsignedAccounts:c},accountKeys:d,recentBlockhash:e,instructions:h})}_compile(){const e=this.compileMessage(),t=e.accountKeys.slice(0,e.header.numRequiredSignatures);return this.signatures.length===t.length&&this.signatures.every(((e,r)=>t[r].equals(e.publicKey)))||(this.signatures=t.map((e=>({signature:null,publicKey:e})))),e}serializeMessage(){return this._compile().serialize()}async getEstimatedFee(e){return(await e.getFeeForMessage(this.compileMessage())).value}setSigners(...e){if(0===e.length)throw new Error("No signers");const t=new Set;this.signatures=e.filter((e=>{const r=e.toString();return!t.has(r)&&(t.add(r),!0)})).map((e=>({signature:null,publicKey:e})))}sign(...e){if(0===e.length)throw new Error("No signers");const t=new Set,r=[];for(const n of e){const e=n.publicKey.toString();t.has(e)||(t.add(e),r.push(n))}this.signatures=r.map((e=>({signature:null,publicKey:e.publicKey})));const n=this._compile();this._partialSign(n,...r)}partialSign(...e){if(0===e.length)throw new Error("No signers");const t=new Set,r=[];for(const n of e){const e=n.publicKey.toString();t.has(e)||(t.add(e),r.push(n))}const n=this._compile();this._partialSign(n,...r)}_partialSign(e,...t){const r=e.serialize();t.forEach((e=>{const t=fr(r,e.secretKey);this._addSignature(e.publicKey,hr(t))}))}addSignature(e,t){this._compile(),this._addSignature(e,t)}_addSignature(e,t){Br(64===t.length);const r=this.signatures.findIndex((t=>e.equals(t.publicKey)));if(r<0)throw new Error(`unknown signer: ${e.toString()}`);this.signatures[r].signature=i.Buffer.from(t)}verifySignatures(e){return this._verifySignatures(this.serializeMessage(),void 0===e||e)}_verifySignatures(e,t){for(const{signature:r,publicKey:n}of this.signatures)if(null===r){if(t)return!1}else if(!dr(r,e,n.toBytes()))return!1;return!0}serialize(e){const{requireAllSignatures:t,verifySignatures:r}=Object.assign({requireAllSignatures:!0,verifySignatures:!0},e),n=this.serializeMessage();if(r&&!this._verifySignatures(n,t))throw new Error("Signature verification failed");return this._serialize(n)}_serialize(e){const{signatures:t}=this,r=[];Lr(r,t.length);const n=r.length+64*t.length+e.length,o=i.Buffer.alloc(n);return Br(t.length<256),i.Buffer.from(r).copy(o,0),t.forEach((({signature:e},t)=>{null!==e&&(Br(64===e.length,"signature has invalid length"),i.Buffer.from(e).copy(o,r.length+64*t))})),e.copy(o,r.length+64*t.length),Br(o.length<=kr,`Transaction too large: ${o.length} > ${kr}`),o}get keys(){return Br(1===this.instructions.length),this.instructions[0].keys.map((e=>e.pubkey))}get programId(){return Br(1===this.instructions.length),this.instructions[0].programId}get data(){return Br(1===this.instructions.length),this.instructions[0].data}static from(e){let t=[...e];const r=Dr(t);let n=[];for(let e=0;e0&&(r.feePayer=e.accountKeys[0]),t.forEach(((t,n)=>{const i={signature:t==Fe().encode(Hr)?null:Fe().decode(t),publicKey:e.accountKeys[n]};r.signatures.push(i)})),e.instructions.forEach((t=>{const n=t.accounts.map((t=>{const n=e.accountKeys[t];return{pubkey:n,isSigner:r.signatures.some((e=>e.publicKey.toString()===n.toString()))||e.isAccountSigner(t),isWritable:e.isAccountWritable(t)}}));r.instructions.push(new Kr({keys:n,programId:e.accountKeys[t.programIdIndex],data:Fe().decode(t.data)}))})),r._message=e,r._json=r.toJSON(),r}}class Vr{constructor(e){this.payerKey=void 0,this.instructions=void 0,this.recentBlockhash=void 0,this.payerKey=e.payerKey,this.instructions=e.instructions,this.recentBlockhash=e.recentBlockhash}static decompile(e,t){const{header:r,compiledInstructions:n,recentBlockhash:i}=e,{numRequiredSignatures:o,numReadonlySignedAccounts:s,numReadonlyUnsignedAccounts:a}=r,u=o-s;Br(u>0,"Message header is invalid");const c=e.staticAccountKeys.length-o-a;Br(c>=0,"Message header is invalid");const l=e.getAccountKeys(t),f=l.get(0);if(void 0===f)throw new Error("Failed to decompile message because no account keys were found");const d=[];for(const e of n){const t=[];for(const n of e.accountKeyIndexes){const e=l.get(n);if(void 0===e)throw new Error(`Failed to find key for account key index ${n}`);let i;i=ne.equals(n.publicKey)));Br(e>=0,`Cannot sign with non signer key ${n.publicKey.toBase58()}`),this.signatures[e]=fr(t,n.secretKey)}}addSignature(e,t){Br(64===t.byteLength,"Signature must be 64 bytes long");const r=this.message.staticAccountKeys.slice(0,this.message.header.numRequiredSignatures).findIndex((t=>t.equals(e)));Br(r>=0,`Can not add signature; \`${e.toBase58()}\` is not required to sign this transaction`),this.signatures[r]=t}}const Yr=new xr("SysvarC1ock11111111111111111111111111111111"),Gr=new xr("SysvarEpochSchedu1e111111111111111111111111"),Zr=new xr("Sysvar1nstructions1111111111111111111111111"),Jr=new xr("SysvarRecentB1ockHashes11111111111111111111"),Xr=new xr("SysvarRent111111111111111111111111111111111"),en=new xr("SysvarRewards111111111111111111111111111111"),tn=new xr("SysvarS1otHashes111111111111111111111111111"),rn=new xr("SysvarS1otHistory11111111111111111111111111"),nn=new xr("SysvarStakeHistory1111111111111111111111111");async function on(e,t,r,n){const i=n&&{skipPreflight:n.skipPreflight,preflightCommitment:n.preflightCommitment||n.commitment,maxRetries:n.maxRetries,minContextSlot:n.minContextSlot},o=await e.sendTransaction(t,r,i);let s;if(null!=t.recentBlockhash&&null!=t.lastValidBlockHeight)s=(await e.confirmTransaction({abortSignal:n?.abortSignal,signature:o,blockhash:t.recentBlockhash,lastValidBlockHeight:t.lastValidBlockHeight},n&&n.commitment)).value;else if(null!=t.minNonceContextSlot&&null!=t.nonceInfo){const{nonceInstruction:r}=t.nonceInfo,i=r.keys[0].pubkey;s=(await e.confirmTransaction({abortSignal:n?.abortSignal,minContextSlot:t.minNonceContextSlot,nonceAccountPubkey:i,nonceValue:t.nonceInfo.nonce,signature:o},n&&n.commitment)).value}else null!=n?.abortSignal&&sr.warn("sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable."),s=(await e.confirmTransaction(o,n&&n.commitment)).value;if(s.err)throw new Error(`Transaction ${o} failed (${JSON.stringify(s)})`);return o}function sn(e){return new Promise((t=>setTimeout(t,e)))}function an(e,t){const r=e.layout.span>=0?e.layout.span:Rr(e,t),n=i.Buffer.alloc(r),o=Object.assign({instruction:e.index},t);return e.layout.encode(o,n),n}function un(e,t){let r;try{r=e.layout.decode(t)}catch(e){throw new Error("invalid instruction; "+e)}if(r.instruction!==e.index)throw new Error(`invalid instruction; instruction index mismatch ${r.instruction} != ${e.index}`);return r}const cn=Ge.I0("lamportsPerSignature"),ln=Ge.w3([Ge.DH("version"),Ge.DH("state"),Nr("authorizedPubkey"),Nr("nonce"),Ge.w3([cn],"feeCalculator")]),fn=ln.span;class dn{constructor(e){this.authorizedPubkey=void 0,this.nonce=void 0,this.feeCalculator=void 0,this.authorizedPubkey=e.authorizedPubkey,this.nonce=e.nonce,this.feeCalculator=e.feeCalculator}static fromAccountData(e){const t=ln.decode(hr(e),0);return new dn({authorizedPubkey:new xr(t.authorizedPubkey),nonce:new xr(t.nonce).toString(),feeCalculator:t.feeCalculator})}}const hn=e=>{const t=(0,Ge.av)(8,e),{encode:r,decode:n}=(e=>({decode:e.decode.bind(e),encode:e.encode.bind(e)}))(t),o=t;return o.decode=(e,t)=>{const r=n(e,t);return(0,Ze.k5)(i.Buffer.from(r))},o.encode=(e,t,n)=>{const i=(0,Ze.Bq)(e,8);return r(i,t,n)},o};class pn{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const t=Ge.DH("instruction").decode(e.data);let r;for(const[e,n]of Object.entries(gn))if(n.index==t){r=e;break}if(!r)throw new Error("Instruction type incorrect; not a SystemInstruction");return r}static decodeCreateAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{lamports:t,space:r,programId:n}=un(gn.Create,e.data);return{fromPubkey:e.keys[0].pubkey,newAccountPubkey:e.keys[1].pubkey,lamports:t,space:r,programId:new xr(n)}}static decodeTransfer(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{lamports:t}=un(gn.Transfer,e.data);return{fromPubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,lamports:t}}static decodeTransferWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:t,seed:r,programId:n}=un(gn.TransferWithSeed,e.data);return{fromPubkey:e.keys[0].pubkey,basePubkey:e.keys[1].pubkey,toPubkey:e.keys[2].pubkey,lamports:t,seed:r,programId:new xr(n)}}static decodeAllocate(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{space:t}=un(gn.Allocate,e.data);return{accountPubkey:e.keys[0].pubkey,space:t}}static decodeAllocateWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{base:t,seed:r,space:n,programId:i}=un(gn.AllocateWithSeed,e.data);return{accountPubkey:e.keys[0].pubkey,basePubkey:new xr(t),seed:r,space:n,programId:new xr(i)}}static decodeAssign(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{programId:t}=un(gn.Assign,e.data);return{accountPubkey:e.keys[0].pubkey,programId:new xr(t)}}static decodeAssignWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{base:t,seed:r,programId:n}=un(gn.AssignWithSeed,e.data);return{accountPubkey:e.keys[0].pubkey,basePubkey:new xr(t),seed:r,programId:new xr(n)}}static decodeCreateWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{base:t,seed:r,lamports:n,space:i,programId:o}=un(gn.CreateWithSeed,e.data);return{fromPubkey:e.keys[0].pubkey,newAccountPubkey:e.keys[1].pubkey,basePubkey:new xr(t),seed:r,lamports:n,space:i,programId:new xr(o)}}static decodeNonceInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{authorized:t}=un(gn.InitializeNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,authorizedPubkey:new xr(t)}}static decodeNonceAdvance(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),un(gn.AdvanceNonceAccount,e.data),{noncePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static decodeNonceWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:t}=un(gn.WithdrawNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:t}}static decodeNonceAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:t}=un(gn.AuthorizeNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[1].pubkey,newAuthorizedPubkey:new xr(t)}}static checkProgramId(e){if(!e.equals(mn.programId))throw new Error("invalid instruction; programId is not SystemProgram")}static checkKeyLength(e,t){if(e.length0?i:1,space:o.length,programId:n}));null!==a&&await on(e,a,[t,r],{commitment:"confirmed"})}const s=Ge.w3([Ge.DH("instruction"),Ge.DH("offset"),Ge.DH("bytesLength"),Ge.DH("bytesLengthPadding"),Ge.O6(Ge.u8("byte"),Ge.cY(Ge.DH(),-8),"bytes")]),a=vn.chunkSize;let u=0,c=o,l=[];for(;c.length>0;){const o=c.slice(0,a),f=i.Buffer.alloc(a+16);s.encode({instruction:0,offset:u,bytes:o,bytesLength:0,bytesLengthPadding:0},f);const d=(new Qr).add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0}],programId:n,data:f});if(l.push(on(e,d,[t,r],{commitment:"confirmed"})),e._rpcEndpoint.includes("solana.com")){const e=4;await sn(1e3/e)}u+=a,c=c.slice(a)}await Promise.all(l);{const o=Ge.w3([Ge.DH("instruction")]),s=i.Buffer.alloc(o.span);o.encode({instruction:1},s);const a=(new Qr).add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0},{pubkey:Xr,isSigner:!1,isWritable:!1}],programId:n,data:s}),u="processed",c=await e.sendTransaction(a,[t,r],{preflightCommitment:u}),{context:l,value:f}=await e.confirmTransaction({signature:c,lastValidBlockHeight:a.lastValidBlockHeight,blockhash:a.recentBlockhash},u);if(f.err)throw new Error(`Transaction ${c} failed (${JSON.stringify(f)})`);for(;;){try{if(await e.getSlot({commitment:u})>l.slot)break}catch{}await new Promise((e=>setTimeout(e,Math.round(200))))}}return!0}}vn.chunkSize=yn;const wn=new xr("BPFLoader2111111111111111111111111111111111");class bn{static getMinNumSignatures(e){return vn.getMinNumSignatures(e)}static load(e,t,r,n,i){return vn.load(e,t,r,i,n)}}function _n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xn=Object.prototype.toString,Sn=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};function Mn(e,t){var r,n,i,o,s,a,u;if(!0===e)return"true";if(!1===e)return"false";switch(typeof e){case"object":if(null===e)return null;if(e.toJSON&&"function"==typeof e.toJSON)return Mn(e.toJSON(),t);if("[object Array]"===(u=xn.call(e))){for(i="[",n=e.length-1,r=0;r-1&&(i+=Mn(e[r],!0)),i+"]"}if("[object Object]"===u){for(n=(o=Sn(e).sort()).length,i="",r=0;r1;)e/=2,t++;return t}class En{constructor(e,t,r,n,i){this.slotsPerEpoch=void 0,this.leaderScheduleSlotOffset=void 0,this.warmup=void 0,this.firstNormalEpoch=void 0,this.firstNormalSlot=void 0,this.slotsPerEpoch=e,this.leaderScheduleSlotOffset=t,this.warmup=r,this.firstNormalEpoch=n,this.firstNormalSlot=i}getEpoch(e){return this.getEpochAndSlotIndex(e)[0]}getEpochAndSlotIndex(e){if(e>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,1+(t|=t>>32)))-On(32)-1;return[r,e-(this.getSlotsInEpoch(r)-32)]}{const t=e-this.firstNormalSlot,r=Math.floor(t/this.slotsPerEpoch);return[this.firstNormalEpoch+r,t%this.slotsPerEpoch]}var t}getFirstSlotInEpoch(e){return e<=this.firstNormalEpoch?32*(Math.pow(2,e)-1):(e-this.firstNormalEpoch)*this.slotsPerEpoch+this.firstNormalSlot}getLastSlotInEpoch(e){return this.getFirstSlotInEpoch(e)+this.getSlotsInEpoch(e)-1}getSlotsInEpoch(e){return e{const r=(0,Et.A)(e,{autoconnect:!0,max_reconnects:5,reconnect:!0,reconnect_interval:1e3,...t});return this.underlyingSocket="socket"in r?r.socket:r,r}),e,t,r),this.underlyingSocket=void 0}call(...e){const t=this.underlyingSocket?.readyState;return 1===t?super.call(...e):Promise.reject(new Error("Tried to call a JSON-RPC method `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+t+")"))}notify(...e){const t=this.underlyingSocket?.readyState;return 1===t?super.notify(...e):Promise.reject(new Error("Tried to send a JSON-RPC notification `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+t+")"))}}class Tn{constructor(e){this.key=void 0,this.state=void 0,this.key=e.key,this.state=e.state}isActive(){const e=BigInt("0xffffffffffffffff");return this.state.deactivationSlot===e}static deserialize(e){const t=function(e,t){let r;try{r=e.layout.decode(t)}catch(e){throw new Error("invalid instruction; "+e)}if(r.typeIndex!==e.index)throw new Error(`invalid account data; account type mismatch ${r.typeIndex} != ${e.index}`);return r}(Pn,e),r=e.length-56;Br(r>=0,"lookup table is invalid"),Br(r%32==0,"lookup table is invalid");const n=r/32,{addresses:i}=Ge.w3([Ge.O6(Nr(),n,"addresses")]).decode(e.slice(56));return{deactivationSlot:t.deactivationSlot,lastExtendedSlot:t.lastExtendedSlot,lastExtendedSlotStartIndex:t.lastExtendedStartIndex,authority:0!==t.authority.length?new xr(t.authority[0]):void 0,addresses:i.map((e=>new xr(e)))}}}const Pn={index:1,layout:Ge.w3([Ge.DH("typeIndex"),hn("deactivationSlot"),Ge.I0("lastExtendedSlot"),Ge.u8("lastExtendedStartIndex"),Ge.u8(),Ge.O6(Nr(),Ge.cY(Ge.u8(),-1),"authority")])},Rn=/^[^:]+:\/\/([^:[]+|\[[^\]]+\])(:\d+)?(.*)/i,Dn=St(dt(xr),vt(),(e=>new xr(e))),Ln=wt([vt(),ht("base64")]),Bn=St(dt(i.Buffer),Ln,(e=>i.Buffer.from(e[0],"base64"))),zn=3e4;function Un(e){let t,r;if("string"==typeof e)t=e;else if(e){const{commitment:n,...i}=e;t=n,r=i}return{commitment:t,config:r}}function Wn(e){return _t([bt({jsonrpc:ht("2.0"),id:vt(),result:e}),bt({jsonrpc:ht("2.0"),id:vt(),error:bt({code:xt(),message:vt(),data:mt(ct("any",(()=>!0)))})})])}const Fn=Wn(xt());function qn(e){return St(Wn(e),Fn,(t=>"error"in t?t:{...t,result:st(t.result,e)}))}function Hn(e){return qn(bt({context:bt({slot:gt()}),value:e}))}function Kn(e){return bt({context:bt({slot:gt()}),value:e})}function Qn(e,t){return 0===e?new Wr({header:t.header,staticAccountKeys:t.accountKeys.map((e=>new xr(e))),recentBlockhash:t.recentBlockhash,compiledInstructions:t.instructions.map((e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:Fe().decode(e.data)}))),addressTableLookups:t.addressTableLookups}):new Ur(t)}const Vn=bt({foundation:gt(),foundationTerm:gt(),initial:gt(),taper:gt(),terminal:gt()}),$n=qn(lt(pt(bt({epoch:gt(),effectiveSlot:gt(),amount:gt(),postBalance:gt(),commission:mt(pt(gt()))})))),Yn=lt(bt({slot:gt(),prioritizationFee:gt()})),Gn=bt({total:gt(),validator:gt(),foundation:gt(),epoch:gt()}),Zn=bt({epoch:gt(),slotIndex:gt(),slotsInEpoch:gt(),absoluteSlot:gt(),blockHeight:mt(gt()),transactionCount:mt(gt())}),Jn=bt({slotsPerEpoch:gt(),leaderScheduleSlotOffset:gt(),warmup:ft(),firstNormalEpoch:gt(),firstNormalSlot:gt()}),Xn=yt(vt(),lt(gt())),ei=pt(_t([bt({}),vt()])),ti=bt({err:ei}),ri=ht("receivedSignature"),ni=bt({"solana-core":vt(),"feature-set":mt(gt())}),ii=Hn(bt({err:pt(_t([bt({}),vt()])),logs:pt(lt(vt())),accounts:mt(pt(lt(pt(bt({executable:ft(),owner:vt(),lamports:gt(),data:lt(vt()),rentEpoch:mt(gt())}))))),unitsConsumed:mt(gt()),returnData:mt(pt(bt({programId:vt(),data:wt([vt(),ht("base64")])})))})),oi=Hn(bt({byIdentity:yt(vt(),lt(gt())),range:bt({firstSlot:gt(),lastSlot:gt()})})),si=qn(Vn),ai=qn(Gn),ui=qn(Yn),ci=qn(Zn),li=qn(Jn),fi=qn(Xn),di=qn(gt()),hi=Hn(bt({total:gt(),circulating:gt(),nonCirculating:gt(),nonCirculatingAccounts:lt(Dn)})),pi=bt({amount:vt(),uiAmount:pt(gt()),decimals:gt(),uiAmountString:mt(vt())}),gi=Hn(lt(bt({address:Dn,amount:vt(),uiAmount:pt(gt()),decimals:gt(),uiAmountString:mt(vt())}))),mi=Hn(lt(bt({pubkey:Dn,account:bt({executable:ft(),owner:Dn,lamports:gt(),data:Bn,rentEpoch:gt()})}))),yi=bt({program:vt(),parsed:xt(),space:gt()}),vi=Hn(lt(bt({pubkey:Dn,account:bt({executable:ft(),owner:Dn,lamports:gt(),data:yi,rentEpoch:gt()})}))),wi=Hn(lt(bt({lamports:gt(),address:Dn}))),bi=bt({executable:ft(),owner:Dn,lamports:gt(),data:Bn,rentEpoch:gt()}),_i=bt({pubkey:Dn,account:bi}),xi=St(_t([dt(i.Buffer),yi]),_t([Ln,yi]),(e=>Array.isArray(e)?st(e,Bn):e)),Si=bt({executable:ft(),owner:Dn,lamports:gt(),data:xi,rentEpoch:gt()}),Mi=bt({pubkey:Dn,account:Si}),ki=bt({state:_t([ht("active"),ht("inactive"),ht("activating"),ht("deactivating")]),active:gt(),inactive:gt()}),Oi=qn(lt(bt({signature:vt(),slot:gt(),err:ei,memo:pt(vt()),blockTime:mt(pt(gt()))}))),Ei=qn(lt(bt({signature:vt(),slot:gt(),err:ei,memo:pt(vt()),blockTime:mt(pt(gt()))}))),Ii=bt({subscription:gt(),result:Kn(bi)}),Ai=bt({pubkey:Dn,account:bi}),Ci=bt({subscription:gt(),result:Kn(Ai)}),ji=bt({parent:gt(),slot:gt(),root:gt()}),Ni=bt({subscription:gt(),result:ji}),Ti=_t([bt({type:_t([ht("firstShredReceived"),ht("completed"),ht("optimisticConfirmation"),ht("root")]),slot:gt(),timestamp:gt()}),bt({type:ht("createdBank"),parent:gt(),slot:gt(),timestamp:gt()}),bt({type:ht("frozen"),slot:gt(),timestamp:gt(),stats:bt({numTransactionEntries:gt(),numSuccessfulTransactions:gt(),numFailedTransactions:gt(),maxTransactionsPerEntry:gt()})}),bt({type:ht("dead"),slot:gt(),timestamp:gt(),err:vt()})]),Pi=bt({subscription:gt(),result:Ti}),Ri=bt({subscription:gt(),result:Kn(_t([ti,ri]))}),Di=bt({subscription:gt(),result:gt()}),Li=bt({pubkey:vt(),gossip:pt(vt()),tpu:pt(vt()),rpc:pt(vt()),version:pt(vt())}),Bi=bt({votePubkey:vt(),nodePubkey:vt(),activatedStake:gt(),epochVoteAccount:ft(),epochCredits:lt(wt([gt(),gt(),gt()])),commission:gt(),lastVote:gt(),rootSlot:pt(gt())}),zi=qn(bt({current:lt(Bi),delinquent:lt(Bi)})),Ui=_t([ht("processed"),ht("confirmed"),ht("finalized")]),Wi=bt({slot:gt(),confirmations:pt(gt()),err:ei,confirmationStatus:mt(Ui)}),Fi=Hn(lt(pt(Wi))),qi=qn(gt()),Hi=bt({accountKey:Dn,writableIndexes:lt(gt()),readonlyIndexes:lt(gt())}),Ki=bt({signatures:lt(vt()),message:bt({accountKeys:lt(vt()),header:bt({numRequiredSignatures:gt(),numReadonlySignedAccounts:gt(),numReadonlyUnsignedAccounts:gt()}),instructions:lt(bt({accounts:lt(gt()),data:vt(),programIdIndex:gt()})),recentBlockhash:vt(),addressTableLookups:mt(lt(Hi))})}),Qi=bt({pubkey:Dn,signer:ft(),writable:ft(),source:mt(_t([ht("transaction"),ht("lookupTable")]))}),Vi=bt({accountKeys:lt(Qi),signatures:lt(vt())}),$i=bt({parsed:xt(),program:vt(),programId:Dn}),Yi=bt({accounts:lt(Dn),data:vt(),programId:Dn}),Gi=St(_t([Yi,$i]),_t([bt({parsed:xt(),program:vt(),programId:vt()}),bt({accounts:lt(vt()),data:vt(),programId:vt()})]),(e=>st(e,"accounts"in e?Yi:$i))),Zi=bt({signatures:lt(vt()),message:bt({accountKeys:lt(Qi),instructions:lt(Gi),recentBlockhash:vt(),addressTableLookups:mt(pt(lt(Hi)))})}),Ji=bt({accountIndex:gt(),mint:vt(),owner:mt(vt()),uiTokenAmount:pi}),Xi=bt({writable:lt(Dn),readonly:lt(Dn)}),eo=bt({err:ei,fee:gt(),innerInstructions:mt(pt(lt(bt({index:gt(),instructions:lt(bt({accounts:lt(gt()),data:vt(),programIdIndex:gt()}))})))),preBalances:lt(gt()),postBalances:lt(gt()),logMessages:mt(pt(lt(vt()))),preTokenBalances:mt(pt(lt(Ji))),postTokenBalances:mt(pt(lt(Ji))),loadedAddresses:mt(Xi),computeUnitsConsumed:mt(gt())}),to=bt({err:ei,fee:gt(),innerInstructions:mt(pt(lt(bt({index:gt(),instructions:lt(Gi)})))),preBalances:lt(gt()),postBalances:lt(gt()),logMessages:mt(pt(lt(vt()))),preTokenBalances:mt(pt(lt(Ji))),postTokenBalances:mt(pt(lt(Ji))),loadedAddresses:mt(Xi),computeUnitsConsumed:mt(gt())}),ro=_t([ht(0),ht("legacy")]),no=bt({pubkey:vt(),lamports:gt(),postBalance:pt(gt()),rewardType:pt(vt()),commission:mt(pt(gt()))}),io=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),transactions:lt(bt({transaction:Ki,meta:pt(eo),version:mt(ro)})),rewards:mt(lt(no)),blockTime:pt(gt()),blockHeight:pt(gt())}))),oo=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),rewards:mt(lt(no)),blockTime:pt(gt()),blockHeight:pt(gt())}))),so=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),transactions:lt(bt({transaction:Vi,meta:pt(eo),version:mt(ro)})),rewards:mt(lt(no)),blockTime:pt(gt()),blockHeight:pt(gt())}))),ao=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),transactions:lt(bt({transaction:Zi,meta:pt(to),version:mt(ro)})),rewards:mt(lt(no)),blockTime:pt(gt()),blockHeight:pt(gt())}))),uo=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),transactions:lt(bt({transaction:Vi,meta:pt(to),version:mt(ro)})),rewards:mt(lt(no)),blockTime:pt(gt()),blockHeight:pt(gt())}))),co=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),rewards:mt(lt(no)),blockTime:pt(gt()),blockHeight:pt(gt())}))),lo=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),transactions:lt(bt({transaction:Ki,meta:pt(eo)})),rewards:mt(lt(no)),blockTime:pt(gt())}))),fo=qn(pt(bt({blockhash:vt(),previousBlockhash:vt(),parentSlot:gt(),signatures:lt(vt()),blockTime:pt(gt())}))),ho=qn(pt(bt({slot:gt(),meta:pt(eo),blockTime:mt(pt(gt())),transaction:Ki,version:mt(ro)}))),po=qn(pt(bt({slot:gt(),transaction:Zi,meta:pt(to),blockTime:mt(pt(gt())),version:mt(ro)}))),go=Hn(bt({blockhash:vt(),feeCalculator:bt({lamportsPerSignature:gt()})})),mo=Hn(bt({blockhash:vt(),lastValidBlockHeight:gt()})),yo=Hn(ft()),vo=qn(lt(bt({slot:gt(),numTransactions:gt(),numSlots:gt(),samplePeriodSecs:gt()}))),wo=Hn(pt(bt({feeCalculator:bt({lamportsPerSignature:gt()})}))),bo=qn(vt()),_o=qn(vt()),xo=bt({err:ei,logs:lt(vt()),signature:vt()}),So=bt({result:Kn(xo),subscription:gt()}),Mo={"solana-client":"js/0.0.0-development"};class ko{constructor(e,t){let r,n,i,o,s,a;this._commitment=void 0,this._confirmTransactionInitialTimeout=void 0,this._rpcEndpoint=void 0,this._rpcWsEndpoint=void 0,this._rpcClient=void 0,this._rpcRequest=void 0,this._rpcBatchRequest=void 0,this._rpcWebSocket=void 0,this._rpcWebSocketConnected=!1,this._rpcWebSocketHeartbeat=null,this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketGeneration=0,this._disableBlockhashCaching=!1,this._pollingBlockhash=!1,this._blockhashInfo={latestBlockhash:null,lastFetch:0,transactionSignatures:[],simulatedSignatures:[]},this._nextClientSubscriptionId=0,this._subscriptionDisposeFunctionsByClientSubscriptionId={},this._subscriptionHashByClientSubscriptionId={},this._subscriptionStateChangeCallbacksByHash={},this._subscriptionCallbacksByServerSubscriptionId={},this._subscriptionsByHash={},this._subscriptionsAutoDisposedByRpc=new Set,this.getBlockHeight=(()=>{const e={};return async t=>{const{commitment:r,config:n}=Un(t),i=this._buildArgs([],r,void 0,n),o=kn(i);return e[o]=e[o]??(async()=>{try{const e=st(await this._rpcRequest("getBlockHeight",i),qn(gt()));if("error"in e)throw new Cn(e.error,"failed to get block height information");return e.result}finally{delete e[o]}})(),await e[o]}})(),t&&"string"==typeof t?this._commitment=t:t&&(this._commitment=t.commitment,this._confirmTransactionInitialTimeout=t.confirmTransactionInitialTimeout,r=t.wsEndpoint,n=t.httpHeaders,i=t.fetch,o=t.fetchMiddleware,s=t.disableRetryOnRateLimit,a=t.httpAgent),this._rpcEndpoint=function(e){if(!1===/^https?:/.test(e))throw new TypeError("Endpoint URL must start with `http:` or `https:`.");return e}(e),this._rpcWsEndpoint=r||function(e){const t=e.match(Rn);if(null==t)throw TypeError(`Failed to validate endpoint URL \`${e}\``);const[r,n,i,o]=t,s=e.startsWith("https:")?"wss:":"ws:",a=null==i?null:parseInt(i.slice(1),10);return`${s}//${n}${null==a?"":`:${a+1}`}${o}`}(e),this._rpcClient=function(e,t,r,n,i,o){const s=r||jn;let a;return null!=o&&sr.warn("You have supplied an `httpAgent` when creating a `Connection` in a browser environment.It has been ignored; `httpAgent` is only used in Node environments."),n&&(a=async(e,t)=>{const r=await new Promise(((r,i)=>{try{n(e,t,((e,t)=>r([e,t])))}catch(e){i(e)}}));return await s(...r)}),new(kt())((async(r,n)=>{const o={method:"POST",body:r,agent:void 0,headers:Object.assign({"Content-Type":"application/json"},t||{},Mo)};try{let t,r=5,u=500;for(;t=a?await a(e,o):await s(e,o),429===t.status&&!0!==i&&(r-=1,0!==r);)sr.log(`Server responded with ${t.status} ${t.statusText}. Retrying after ${u}ms delay...`),await sn(u),u*=2;const c=await t.text();t.ok?n(null,c):n(new Error(`${t.status} ${t.statusText}: ${c}`))}catch(e){e instanceof Error&&n(e)}}),{})}(e,n,i,o,s,a),this._rpcRequest=function(e){return(t,r)=>new Promise(((n,i)=>{e.request(t,r,((e,t)=>{e?i(e):n(t)}))}))}(this._rpcClient),this._rpcBatchRequest=function(e){return t=>new Promise(((r,n)=>{0===t.length&&r([]);const i=t.map((t=>e.request(t.methodName,t.args)));e.request(i,((e,t)=>{e?n(e):r(t)}))}))}(this._rpcClient),this._rpcWebSocket=new Nn(this._rpcWsEndpoint,{autoconnect:!1,max_reconnects:1/0}),this._rpcWebSocket.on("open",this._wsOnOpen.bind(this)),this._rpcWebSocket.on("error",this._wsOnError.bind(this)),this._rpcWebSocket.on("close",this._wsOnClose.bind(this)),this._rpcWebSocket.on("accountNotification",this._wsOnAccountNotification.bind(this)),this._rpcWebSocket.on("programNotification",this._wsOnProgramAccountNotification.bind(this)),this._rpcWebSocket.on("slotNotification",this._wsOnSlotNotification.bind(this)),this._rpcWebSocket.on("slotsUpdatesNotification",this._wsOnSlotUpdatesNotification.bind(this)),this._rpcWebSocket.on("signatureNotification",this._wsOnSignatureNotification.bind(this)),this._rpcWebSocket.on("rootNotification",this._wsOnRootNotification.bind(this)),this._rpcWebSocket.on("logsNotification",this._wsOnLogsNotification.bind(this))}get commitment(){return this._commitment}get rpcEndpoint(){return this._rpcEndpoint}async getBalanceAndContext(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgs([e.toBase58()],r,void 0,n),o=st(await this._rpcRequest("getBalance",i),Hn(gt()));if("error"in o)throw new Cn(o.error,`failed to get balance for ${e.toBase58()}`);return o.result}async getBalance(e,t){return await this.getBalanceAndContext(e,t).then((e=>e.value)).catch((t=>{throw new Error("failed to get balance of account "+e.toBase58()+": "+t)}))}async getBlockTime(e){const t=st(await this._rpcRequest("getBlockTime",[e]),qn(pt(gt())));if("error"in t)throw new Cn(t.error,`failed to get block time for slot ${e}`);return t.result}async getMinimumLedgerSlot(){const e=st(await this._rpcRequest("minimumLedgerSlot",[]),qn(gt()));if("error"in e)throw new Cn(e.error,"failed to get minimum ledger slot");return e.result}async getFirstAvailableBlock(){const e=st(await this._rpcRequest("getFirstAvailableBlock",[]),di);if("error"in e)throw new Cn(e.error,"failed to get first available block");return e.result}async getSupply(e){let t={};t="string"==typeof e?{commitment:e}:e?{...e,commitment:e&&e.commitment||this.commitment}:{commitment:this.commitment};const r=st(await this._rpcRequest("getSupply",[t]),hi);if("error"in r)throw new Cn(r.error,"failed to get supply");return r.result}async getTokenSupply(e,t){const r=this._buildArgs([e.toBase58()],t),n=st(await this._rpcRequest("getTokenSupply",r),Hn(pi));if("error"in n)throw new Cn(n.error,"failed to get token supply");return n.result}async getTokenAccountBalance(e,t){const r=this._buildArgs([e.toBase58()],t),n=st(await this._rpcRequest("getTokenAccountBalance",r),Hn(pi));if("error"in n)throw new Cn(n.error,"failed to get token account balance");return n.result}async getTokenAccountsByOwner(e,t,r){const{commitment:n,config:i}=Un(r);let o=[e.toBase58()];"mint"in t?o.push({mint:t.mint.toBase58()}):o.push({programId:t.programId.toBase58()});const s=this._buildArgs(o,n,"base64",i),a=st(await this._rpcRequest("getTokenAccountsByOwner",s),mi);if("error"in a)throw new Cn(a.error,`failed to get token accounts owned by account ${e.toBase58()}`);return a.result}async getParsedTokenAccountsByOwner(e,t,r){let n=[e.toBase58()];"mint"in t?n.push({mint:t.mint.toBase58()}):n.push({programId:t.programId.toBase58()});const i=this._buildArgs(n,r,"jsonParsed"),o=st(await this._rpcRequest("getTokenAccountsByOwner",i),vi);if("error"in o)throw new Cn(o.error,`failed to get token accounts owned by account ${e.toBase58()}`);return o.result}async getLargestAccounts(e){const t={...e,commitment:e&&e.commitment||this.commitment},r=t.filter||t.commitment?[t]:[],n=st(await this._rpcRequest("getLargestAccounts",r),wi);if("error"in n)throw new Cn(n.error,"failed to get largest accounts");return n.result}async getTokenLargestAccounts(e,t){const r=this._buildArgs([e.toBase58()],t),n=st(await this._rpcRequest("getTokenLargestAccounts",r),gi);if("error"in n)throw new Cn(n.error,"failed to get token largest accounts");return n.result}async getAccountInfoAndContext(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgs([e.toBase58()],r,"base64",n),o=st(await this._rpcRequest("getAccountInfo",i),Hn(pt(bi)));if("error"in o)throw new Cn(o.error,`failed to get info about account ${e.toBase58()}`);return o.result}async getParsedAccountInfo(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgs([e.toBase58()],r,"jsonParsed",n),o=st(await this._rpcRequest("getAccountInfo",i),Hn(pt(Si)));if("error"in o)throw new Cn(o.error,`failed to get info about account ${e.toBase58()}`);return o.result}async getAccountInfo(e,t){try{return(await this.getAccountInfoAndContext(e,t)).value}catch(t){throw new Error("failed to get info about account "+e.toBase58()+": "+t)}}async getMultipleParsedAccounts(e,t){const{commitment:r,config:n}=Un(t),i=e.map((e=>e.toBase58())),o=this._buildArgs([i],r,"jsonParsed",n),s=st(await this._rpcRequest("getMultipleAccounts",o),Hn(lt(pt(Si))));if("error"in s)throw new Cn(s.error,`failed to get info for accounts ${i}`);return s.result}async getMultipleAccountsInfoAndContext(e,t){const{commitment:r,config:n}=Un(t),i=e.map((e=>e.toBase58())),o=this._buildArgs([i],r,"base64",n),s=st(await this._rpcRequest("getMultipleAccounts",o),Hn(lt(pt(bi))));if("error"in s)throw new Cn(s.error,`failed to get info for accounts ${i}`);return s.result}async getMultipleAccountsInfo(e,t){return(await this.getMultipleAccountsInfoAndContext(e,t)).value}async getStakeActivation(e,t,r){const{commitment:n,config:i}=Un(t),o=this._buildArgs([e.toBase58()],n,void 0,{...i,epoch:null!=r?r:i?.epoch}),s=st(await this._rpcRequest("getStakeActivation",o),qn(ki));if("error"in s)throw new Cn(s.error,`failed to get Stake Activation ${e.toBase58()}`);return s.result}async getProgramAccounts(e,t){const{commitment:r,config:n}=Un(t),{encoding:i,...o}=n||{},s=this._buildArgs([e.toBase58()],r,i||"base64",o),a=await this._rpcRequest("getProgramAccounts",s),u=lt(_i),c=!0===o.withContext?st(a,Hn(u)):st(a,qn(u));if("error"in c)throw new Cn(c.error,`failed to get accounts owned by program ${e.toBase58()}`);return c.result}async getParsedProgramAccounts(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgs([e.toBase58()],r,"jsonParsed",n),o=st(await this._rpcRequest("getProgramAccounts",i),qn(lt(Mi)));if("error"in o)throw new Cn(o.error,`failed to get accounts owned by program ${e.toBase58()}`);return o.result}async confirmTransaction(e,t){let r,n;if("string"==typeof e)r=e;else{const t=e;if(t.abortSignal?.aborted)return Promise.reject(t.abortSignal.reason);r=t.signature}try{n=Fe().decode(r)}catch(e){throw new Error("signature must be base58 encoded: "+r)}return Br(64===n.length,"signature has invalid length"),"string"==typeof e?await this.confirmTransactionUsingLegacyTimeoutStrategy({commitment:t||this.commitment,signature:r}):"lastValidBlockHeight"in e?await this.confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:t||this.commitment,strategy:e}):await this.confirmTransactionUsingDurableNonceStrategy({commitment:t||this.commitment,strategy:e})}getCancellationPromise(e){return new Promise(((t,r)=>{null!=e&&(e.aborted?r(e.reason):e.addEventListener("abort",(()=>{r(e.reason)})))}))}getTransactionConfirmationPromise({commitment:e,signature:t}){let r,n,i=!1;return{abortConfirmation:()=>{n&&(n(),n=void 0),null!=r&&(this.removeSignatureListener(r),r=void 0)},confirmationPromise:new Promise(((o,s)=>{try{r=this.onSignature(t,((e,t)=>{r=void 0;const n={context:t,value:e};o({__type:qr.PROCESSED,response:n})}),e);const a=new Promise((e=>{null==r?e():n=this._onSubscriptionStateChange(r,(t=>{"subscribed"===t&&e()}))}));(async()=>{if(await a,i)return;const r=await this.getSignatureStatus(t);if(i)return;if(null==r)return;const{context:n,value:u}=r;if(null!=u)if(u?.err)s(u.err);else{switch(e){case"confirmed":case"single":case"singleGossip":if("processed"===u.confirmationStatus)return;break;case"finalized":case"max":case"root":if("processed"===u.confirmationStatus||"confirmed"===u.confirmationStatus)return}i=!0,o({__type:qr.PROCESSED,response:{context:n,value:u}})}})()}catch(e){s(e)}}))}}async confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:e,strategy:{abortSignal:t,lastValidBlockHeight:r,signature:n}}){let i=!1;const o=new Promise((t=>{const n=async()=>{try{return await this.getBlockHeight(e)}catch(e){return-1}};(async()=>{let e=await n();if(!i){for(;e<=r;){if(await sn(1e3),i)return;if(e=await n(),i)return}t({__type:qr.BLOCKHEIGHT_EXCEEDED})}})()})),{abortConfirmation:s,confirmationPromise:a}=this.getTransactionConfirmationPromise({commitment:e,signature:n}),u=this.getCancellationPromise(t);let c;try{const e=await Promise.race([u,a,o]);if(e.__type!==qr.PROCESSED)throw new Ir(n);c=e.response}finally{i=!0,s()}return c}async confirmTransactionUsingDurableNonceStrategy({commitment:e,strategy:{abortSignal:t,minContextSlot:r,nonceAccountPubkey:n,nonceValue:i,signature:o}}){let s=!1;const a=new Promise((t=>{let o=i,a=null;const u=async()=>{try{const{context:t,value:i}=await this.getNonceAndContext(n,{commitment:e,minContextSlot:r});return a=t.slot,i?.nonce}catch(e){return o}};(async()=>{if(o=await u(),!s)for(;;){if(i!==o)return void t({__type:qr.NONCE_INVALID,slotInWhichNonceDidAdvance:a});if(await sn(2e3),s)return;if(o=await u(),s)return}})()})),{abortConfirmation:u,confirmationPromise:c}=this.getTransactionConfirmationPromise({commitment:e,signature:o}),l=this.getCancellationPromise(t);let f;try{const t=await Promise.race([l,c,a]);if(t.__type===qr.PROCESSED)f=t.response;else{let n;for(;;){const e=await this.getSignatureStatus(o);if(null==e)break;if(!(e.context.slot<(t.slotInWhichNonceDidAdvance??r))){n=e;break}await sn(400)}if(!n?.value)throw new Cr(o);{const t=e||"finalized",{confirmationStatus:r}=n.value;switch(t){case"processed":case"recent":if("processed"!==r&&"confirmed"!==r&&"finalized"!==r)throw new Cr(o);break;case"confirmed":case"single":case"singleGossip":if("confirmed"!==r&&"finalized"!==r)throw new Cr(o);break;case"finalized":case"max":case"root":if("finalized"!==r)throw new Cr(o)}f={context:n.context,value:{err:n.value.err}}}}}finally{s=!0,u()}return f}async confirmTransactionUsingLegacyTimeoutStrategy({commitment:e,signature:t}){let r;const n=new Promise((t=>{let n=this._confirmTransactionInitialTimeout||6e4;switch(e){case"processed":case"recent":case"single":case"confirmed":case"singleGossip":n=this._confirmTransactionInitialTimeout||3e4}r=setTimeout((()=>t({__type:qr.TIMED_OUT,timeoutMs:n})),n)})),{abortConfirmation:i,confirmationPromise:o}=this.getTransactionConfirmationPromise({commitment:e,signature:t});let s;try{const e=await Promise.race([o,n]);if(e.__type!==qr.PROCESSED)throw new Ar(t,e.timeoutMs/1e3);s=e.response}finally{clearTimeout(r),i()}return s}async getClusterNodes(){const e=st(await this._rpcRequest("getClusterNodes",[]),qn(lt(Li)));if("error"in e)throw new Cn(e.error,"failed to get cluster nodes");return e.result}async getVoteAccounts(e){const t=this._buildArgs([],e),r=st(await this._rpcRequest("getVoteAccounts",t),zi);if("error"in r)throw new Cn(r.error,"failed to get vote accounts");return r.result}async getSlot(e){const{commitment:t,config:r}=Un(e),n=this._buildArgs([],t,void 0,r),i=st(await this._rpcRequest("getSlot",n),qn(gt()));if("error"in i)throw new Cn(i.error,"failed to get slot");return i.result}async getSlotLeader(e){const{commitment:t,config:r}=Un(e),n=this._buildArgs([],t,void 0,r),i=st(await this._rpcRequest("getSlotLeader",n),qn(vt()));if("error"in i)throw new Cn(i.error,"failed to get slot leader");return i.result}async getSlotLeaders(e,t){const r=[e,t],n=st(await this._rpcRequest("getSlotLeaders",r),qn(lt(Dn)));if("error"in n)throw new Cn(n.error,"failed to get slot leaders");return n.result}async getSignatureStatus(e,t){const{context:r,value:n}=await this.getSignatureStatuses([e],t);return Br(1===n.length),{context:r,value:n[0]}}async getSignatureStatuses(e,t){const r=[e];t&&r.push(t);const n=st(await this._rpcRequest("getSignatureStatuses",r),Fi);if("error"in n)throw new Cn(n.error,"failed to get signature status");return n.result}async getTransactionCount(e){const{commitment:t,config:r}=Un(e),n=this._buildArgs([],t,void 0,r),i=st(await this._rpcRequest("getTransactionCount",n),qn(gt()));if("error"in i)throw new Cn(i.error,"failed to get transaction count");return i.result}async getTotalSupply(e){return(await this.getSupply({commitment:e,excludeNonCirculatingAccountsList:!0})).value.total}async getInflationGovernor(e){const t=this._buildArgs([],e),r=st(await this._rpcRequest("getInflationGovernor",t),si);if("error"in r)throw new Cn(r.error,"failed to get inflation");return r.result}async getInflationReward(e,t,r){const{commitment:n,config:i}=Un(r),o=this._buildArgs([e.map((e=>e.toBase58()))],n,void 0,{...i,epoch:null!=t?t:i?.epoch}),s=st(await this._rpcRequest("getInflationReward",o),$n);if("error"in s)throw new Cn(s.error,"failed to get inflation reward");return s.result}async getInflationRate(){const e=st(await this._rpcRequest("getInflationRate",[]),ai);if("error"in e)throw new Cn(e.error,"failed to get inflation rate");return e.result}async getEpochInfo(e){const{commitment:t,config:r}=Un(e),n=this._buildArgs([],t,void 0,r),i=st(await this._rpcRequest("getEpochInfo",n),ci);if("error"in i)throw new Cn(i.error,"failed to get epoch info");return i.result}async getEpochSchedule(){const e=st(await this._rpcRequest("getEpochSchedule",[]),li);if("error"in e)throw new Cn(e.error,"failed to get epoch schedule");const t=e.result;return new En(t.slotsPerEpoch,t.leaderScheduleSlotOffset,t.warmup,t.firstNormalEpoch,t.firstNormalSlot)}async getLeaderSchedule(){const e=st(await this._rpcRequest("getLeaderSchedule",[]),fi);if("error"in e)throw new Cn(e.error,"failed to get leader schedule");return e.result}async getMinimumBalanceForRentExemption(e,t){const r=this._buildArgs([e],t),n=st(await this._rpcRequest("getMinimumBalanceForRentExemption",r),qi);return"error"in n?(sr.warn("Unable to fetch minimum balance for rent exemption"),0):n.result}async getRecentBlockhashAndContext(e){const t=this._buildArgs([],e),r=st(await this._rpcRequest("getRecentBlockhash",t),go);if("error"in r)throw new Cn(r.error,"failed to get recent blockhash");return r.result}async getRecentPerformanceSamples(e){const t=st(await this._rpcRequest("getRecentPerformanceSamples",e?[e]:[]),vo);if("error"in t)throw new Cn(t.error,"failed to get recent performance samples");return t.result}async getFeeCalculatorForBlockhash(e,t){const r=this._buildArgs([e],t),n=st(await this._rpcRequest("getFeeCalculatorForBlockhash",r),wo);if("error"in n)throw new Cn(n.error,"failed to get fee calculator");const{context:i,value:o}=n.result;return{context:i,value:null!==o?o.feeCalculator:null}}async getFeeForMessage(e,t){const r=hr(e.serialize()).toString("base64"),n=this._buildArgs([r],t),i=st(await this._rpcRequest("getFeeForMessage",n),Hn(pt(gt())));if("error"in i)throw new Cn(i.error,"failed to get fee for message");if(null===i.result)throw new Error("invalid blockhash");return i.result}async getRecentPrioritizationFees(e){const t=e?.lockedWritableAccounts?.map((e=>e.toBase58())),r=t?.length?[t]:[],n=st(await this._rpcRequest("getRecentPrioritizationFees",r),ui);if("error"in n)throw new Cn(n.error,"failed to get recent prioritization fees");return n.result}async getRecentBlockhash(e){try{return(await this.getRecentBlockhashAndContext(e)).value}catch(e){throw new Error("failed to get recent blockhash: "+e)}}async getLatestBlockhash(e){try{return(await this.getLatestBlockhashAndContext(e)).value}catch(e){throw new Error("failed to get recent blockhash: "+e)}}async getLatestBlockhashAndContext(e){const{commitment:t,config:r}=Un(e),n=this._buildArgs([],t,void 0,r),i=st(await this._rpcRequest("getLatestBlockhash",n),mo);if("error"in i)throw new Cn(i.error,"failed to get latest blockhash");return i.result}async isBlockhashValid(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgs([e],r,void 0,n),o=st(await this._rpcRequest("isBlockhashValid",i),yo);if("error"in o)throw new Cn(o.error,"failed to determine if the blockhash `"+e+"`is valid");return o.result}async getVersion(){const e=st(await this._rpcRequest("getVersion",[]),qn(ni));if("error"in e)throw new Cn(e.error,"failed to get version");return e.result}async getGenesisHash(){const e=st(await this._rpcRequest("getGenesisHash",[]),qn(vt()));if("error"in e)throw new Cn(e.error,"failed to get genesis hash");return e.result}async getBlock(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgsAtLeastConfirmed([e],r,void 0,n),o=await this._rpcRequest("getBlock",i);try{switch(n?.transactionDetails){case"accounts":{const e=st(o,so);if("error"in e)throw e.error;return e.result}case"none":{const e=st(o,oo);if("error"in e)throw e.error;return e.result}default:{const e=st(o,io);if("error"in e)throw e.error;const{result:t}=e;return t?{...t,transactions:t.transactions.map((({transaction:e,meta:t,version:r})=>({meta:t,transaction:{...e,message:Qn(r,e.message)},version:r})))}:null}}}catch(e){throw new Cn(e,"failed to get confirmed block")}}async getParsedBlock(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgsAtLeastConfirmed([e],r,"jsonParsed",n),o=await this._rpcRequest("getBlock",i);try{switch(n?.transactionDetails){case"accounts":{const e=st(o,uo);if("error"in e)throw e.error;return e.result}case"none":{const e=st(o,co);if("error"in e)throw e.error;return e.result}default:{const e=st(o,ao);if("error"in e)throw e.error;return e.result}}}catch(e){throw new Cn(e,"failed to get block")}}async getBlockProduction(e){let t,r;if("string"==typeof e)r=e;else if(e){const{commitment:n,...i}=e;r=n,t=i}const n=this._buildArgs([],r,"base64",t),i=st(await this._rpcRequest("getBlockProduction",n),oi);if("error"in i)throw new Cn(i.error,"failed to get block production information");return i.result}async getTransaction(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgsAtLeastConfirmed([e],r,void 0,n),o=st(await this._rpcRequest("getTransaction",i),ho);if("error"in o)throw new Cn(o.error,"failed to get transaction");const s=o.result;return s?{...s,transaction:{...s.transaction,message:Qn(s.version,s.transaction.message)}}:s}async getParsedTransaction(e,t){const{commitment:r,config:n}=Un(t),i=this._buildArgsAtLeastConfirmed([e],r,"jsonParsed",n),o=st(await this._rpcRequest("getTransaction",i),po);if("error"in o)throw new Cn(o.error,"failed to get transaction");return o.result}async getParsedTransactions(e,t){const{commitment:r,config:n}=Un(t),i=e.map((e=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([e],r,"jsonParsed",n)})));return(await this._rpcBatchRequest(i)).map((e=>{const t=st(e,po);if("error"in t)throw new Cn(t.error,"failed to get transactions");return t.result}))}async getTransactions(e,t){const{commitment:r,config:n}=Un(t),i=e.map((e=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([e],r,void 0,n)})));return(await this._rpcBatchRequest(i)).map((e=>{const t=st(e,ho);if("error"in t)throw new Cn(t.error,"failed to get transactions");const r=t.result;return r?{...r,transaction:{...r.transaction,message:Qn(r.version,r.transaction.message)}}:r}))}async getConfirmedBlock(e,t){const r=this._buildArgsAtLeastConfirmed([e],t),n=st(await this._rpcRequest("getConfirmedBlock",r),lo);if("error"in n)throw new Cn(n.error,"failed to get confirmed block");const i=n.result;if(!i)throw new Error("Confirmed block "+e+" not found");const o={...i,transactions:i.transactions.map((({transaction:e,meta:t})=>{const r=new Ur(e.message);return{meta:t,transaction:{...e,message:r}}}))};return{...o,transactions:o.transactions.map((({transaction:e,meta:t})=>({meta:t,transaction:Qr.populate(e.message,e.signatures)})))}}async getBlocks(e,t,r){const n=this._buildArgsAtLeastConfirmed(void 0!==t?[e,t]:[e],r),i=st(await this._rpcRequest("getBlocks",n),qn(lt(gt())));if("error"in i)throw new Cn(i.error,"failed to get blocks");return i.result}async getBlockSignatures(e,t){const r=this._buildArgsAtLeastConfirmed([e],t,void 0,{transactionDetails:"signatures",rewards:!1}),n=st(await this._rpcRequest("getBlock",r),fo);if("error"in n)throw new Cn(n.error,"failed to get block");const i=n.result;if(!i)throw new Error("Block "+e+" not found");return i}async getConfirmedBlockSignatures(e,t){const r=this._buildArgsAtLeastConfirmed([e],t,void 0,{transactionDetails:"signatures",rewards:!1}),n=st(await this._rpcRequest("getConfirmedBlock",r),fo);if("error"in n)throw new Cn(n.error,"failed to get confirmed block");const i=n.result;if(!i)throw new Error("Confirmed block "+e+" not found");return i}async getConfirmedTransaction(e,t){const r=this._buildArgsAtLeastConfirmed([e],t),n=st(await this._rpcRequest("getConfirmedTransaction",r),ho);if("error"in n)throw new Cn(n.error,"failed to get transaction");const i=n.result;if(!i)return i;const o=new Ur(i.transaction.message),s=i.transaction.signatures;return{...i,transaction:Qr.populate(o,s)}}async getParsedConfirmedTransaction(e,t){const r=this._buildArgsAtLeastConfirmed([e],t,"jsonParsed"),n=st(await this._rpcRequest("getConfirmedTransaction",r),po);if("error"in n)throw new Cn(n.error,"failed to get confirmed transaction");return n.result}async getParsedConfirmedTransactions(e,t){const r=e.map((e=>({methodName:"getConfirmedTransaction",args:this._buildArgsAtLeastConfirmed([e],t,"jsonParsed")})));return(await this._rpcBatchRequest(r)).map((e=>{const t=st(e,po);if("error"in t)throw new Cn(t.error,"failed to get confirmed transactions");return t.result}))}async getConfirmedSignaturesForAddress(e,t,r){let n={},i=await this.getFirstAvailableBlock();for(;!("until"in n)&&!(--t<=0||t0&&(n.until=e.signatures[e.signatures.length-1].toString())}catch(e){if(e instanceof Error&&e.message.includes("skipped"))continue;throw e}let o=await this.getSlot("finalized");for(;!("before"in n||++r>o);)try{const e=await this.getConfirmedBlockSignatures(r);e.signatures.length>0&&(n.before=e.signatures[e.signatures.length-1].toString())}catch(e){if(e instanceof Error&&e.message.includes("skipped"))continue;throw e}return(await this.getConfirmedSignaturesForAddress2(e,n)).map((e=>e.signature))}async getConfirmedSignaturesForAddress2(e,t,r){const n=this._buildArgsAtLeastConfirmed([e.toBase58()],r,void 0,t),i=st(await this._rpcRequest("getConfirmedSignaturesForAddress2",n),Oi);if("error"in i)throw new Cn(i.error,"failed to get confirmed signatures for address");return i.result}async getSignaturesForAddress(e,t,r){const n=this._buildArgsAtLeastConfirmed([e.toBase58()],r,void 0,t),i=st(await this._rpcRequest("getSignaturesForAddress",n),Ei);if("error"in i)throw new Cn(i.error,"failed to get signatures for address");return i.result}async getAddressLookupTable(e,t){const{context:r,value:n}=await this.getAccountInfoAndContext(e,t);let i=null;return null!==n&&(i=new Tn({key:e,state:Tn.deserialize(n.data)})),{context:r,value:i}}async getNonceAndContext(e,t){const{context:r,value:n}=await this.getAccountInfoAndContext(e,t);let i=null;return null!==n&&(i=dn.fromAccountData(n.data)),{context:r,value:i}}async getNonce(e,t){return await this.getNonceAndContext(e,t).then((e=>e.value)).catch((t=>{throw new Error("failed to get nonce for account "+e.toBase58()+": "+t)}))}async requestAirdrop(e,t){const r=st(await this._rpcRequest("requestAirdrop",[e.toBase58(),t]),bo);if("error"in r)throw new Cn(r.error,`airdrop to ${e.toBase58()} failed`);return r.result}async _blockhashWithExpiryBlockHeight(e){if(!e){for(;this._pollingBlockhash;)await sn(100);const e=Date.now()-this._blockhashInfo.lastFetch>=zn;if(null!==this._blockhashInfo.latestBlockhash&&!e)return this._blockhashInfo.latestBlockhash}return await this._pollNewBlockhash()}async _pollNewBlockhash(){this._pollingBlockhash=!0;try{const e=Date.now(),t=this._blockhashInfo.latestBlockhash,r=t?t.blockhash:null;for(let e=0;e<50;e++){const e=await this.getLatestBlockhash("finalized");if(r!==e.blockhash)return this._blockhashInfo={latestBlockhash:e,lastFetch:Date.now(),transactionSignatures:[],simulatedSignatures:[]},e;await sn(200)}throw new Error(`Unable to obtain a new blockhash after ${Date.now()-e}ms`)}finally{this._pollingBlockhash=!1}}async getStakeMinimumDelegation(e){const{commitment:t,config:r}=Un(e),n=this._buildArgs([],t,"base64",r),i=st(await this._rpcRequest("getStakeMinimumDelegation",n),Hn(gt()));if("error"in i)throw new Cn(i.error,"failed to get stake minimum delegation");return i.result}async simulateTransaction(e,t,r){if("message"in e){const n=e.serialize(),o=i.Buffer.from(n).toString("base64");if(Array.isArray(t)||void 0!==r)throw new Error("Invalid arguments");const s=t||{};s.encoding="base64","commitment"in s||(s.commitment=this.commitment);const a=[o,s],u=st(await this._rpcRequest("simulateTransaction",a),ii);if("error"in u)throw new Error("failed to simulate transaction: "+u.error.message);return u.result}let n;if(e instanceof Qr){let t=e;n=new Qr,n.feePayer=t.feePayer,n.instructions=e.instructions,n.nonceInfo=t.nonceInfo,n.signatures=t.signatures}else n=Qr.populate(e),n._message=n._json=void 0;if(void 0!==t&&!Array.isArray(t))throw new Error("Invalid arguments");const o=t;if(n.nonceInfo&&o)n.sign(...o);else{let e=this._disableBlockhashCaching;for(;;){const t=await this._blockhashWithExpiryBlockHeight(e);if(n.lastValidBlockHeight=t.lastValidBlockHeight,n.recentBlockhash=t.blockhash,!o)break;if(n.sign(...o),!n.signature)throw new Error("!signature");const r=n.signature.toString("base64");if(!this._blockhashInfo.simulatedSignatures.includes(r)&&!this._blockhashInfo.transactionSignatures.includes(r)){this._blockhashInfo.simulatedSignatures.push(r);break}e=!0}}const s=n._compile(),a=s.serialize(),u=n._serialize(a).toString("base64"),c={encoding:"base64",commitment:this.commitment};if(r){const e=(Array.isArray(r)?r:s.nonProgramIds()).map((e=>e.toBase58()));c.accounts={encoding:"base64",addresses:e}}o&&(c.sigVerify=!0);const l=[u,c],f=st(await this._rpcRequest("simulateTransaction",l),ii);if("error"in f){let e;if("data"in f.error&&(e=f.error.data.logs,e&&Array.isArray(e))){const t="\n ",r=t+e.join(t);sr.error(f.error.message,r)}throw new In("failed to simulate transaction: "+f.error.message,e)}return f.result}async sendTransaction(e,t,r){if("version"in e){if(t&&Array.isArray(t))throw new Error("Invalid arguments");const r=e.serialize();return await this.sendRawTransaction(r,t)}if(void 0===t||!Array.isArray(t))throw new Error("Invalid arguments");const n=t;if(e.nonceInfo)e.sign(...n);else{let t=this._disableBlockhashCaching;for(;;){const r=await this._blockhashWithExpiryBlockHeight(t);if(e.lastValidBlockHeight=r.lastValidBlockHeight,e.recentBlockhash=r.blockhash,e.sign(...n),!e.signature)throw new Error("!signature");const i=e.signature.toString("base64");if(!this._blockhashInfo.transactionSignatures.includes(i)){this._blockhashInfo.transactionSignatures.push(i);break}t=!0}}const i=e.serialize();return await this.sendRawTransaction(i,r)}async sendRawTransaction(e,t){const r=hr(e).toString("base64");return await this.sendEncodedTransaction(r,t)}async sendEncodedTransaction(e,t){const r={encoding:"base64"},n=t&&t.skipPreflight,i=t&&t.preflightCommitment||this.commitment;t&&null!=t.maxRetries&&(r.maxRetries=t.maxRetries),t&&null!=t.minContextSlot&&(r.minContextSlot=t.minContextSlot),n&&(r.skipPreflight=n),i&&(r.preflightCommitment=i);const o=[e,r],s=st(await this._rpcRequest("sendTransaction",o),_o);if("error"in s){let e;throw"data"in s.error&&(e=s.error.data.logs),new In("failed to send transaction: "+s.error.message,e)}return s.result}_wsOnOpen(){this._rpcWebSocketConnected=!0,this._rpcWebSocketHeartbeat=setInterval((()=>{(async()=>{try{await this._rpcWebSocket.notify("ping")}catch{}})()}),5e3),this._updateSubscriptions()}_wsOnError(e){this._rpcWebSocketConnected=!1,sr.error("ws error:",e.message)}_wsOnClose(e){this._rpcWebSocketConnected=!1,this._rpcWebSocketGeneration=(this._rpcWebSocketGeneration+1)%Number.MAX_SAFE_INTEGER,this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null),this._rpcWebSocketHeartbeat&&(clearInterval(this._rpcWebSocketHeartbeat),this._rpcWebSocketHeartbeat=null),1e3!==e?(this._subscriptionCallbacksByServerSubscriptionId={},Object.entries(this._subscriptionsByHash).forEach((([e,t])=>{this._setSubscription(e,{...t,state:"pending"})}))):this._updateSubscriptions()}_setSubscription(e,t){const r=this._subscriptionsByHash[e]?.state;if(this._subscriptionsByHash[e]=t,r!==t.state){const r=this._subscriptionStateChangeCallbacksByHash[e];r&&r.forEach((e=>{try{e(t.state)}catch{}}))}}_onSubscriptionStateChange(e,t){const r=this._subscriptionHashByClientSubscriptionId[e];if(null==r)return()=>{};const n=this._subscriptionStateChangeCallbacksByHash[r]||=new Set;return n.add(t),()=>{n.delete(t),0===n.size&&delete this._subscriptionStateChangeCallbacksByHash[r]}}async _updateSubscriptions(){if(0===Object.keys(this._subscriptionsByHash).length)return void(this._rpcWebSocketConnected&&(this._rpcWebSocketConnected=!1,this._rpcWebSocketIdleTimeout=setTimeout((()=>{this._rpcWebSocketIdleTimeout=null;try{this._rpcWebSocket.close()}catch(e){e instanceof Error&&sr.log(`Error when closing socket connection: ${e.message}`)}}),500)));if(null!==this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketConnected=!0),!this._rpcWebSocketConnected)return void this._rpcWebSocket.connect();const e=this._rpcWebSocketGeneration,t=()=>e===this._rpcWebSocketGeneration;await Promise.all(Object.keys(this._subscriptionsByHash).map((async e=>{const r=this._subscriptionsByHash[e];if(void 0!==r)switch(r.state){case"pending":case"unsubscribed":if(0===r.callbacks.size)return delete this._subscriptionsByHash[e],"unsubscribed"===r.state&&delete this._subscriptionCallbacksByServerSubscriptionId[r.serverSubscriptionId],void await this._updateSubscriptions();await(async()=>{const{args:n,method:i}=r;try{this._setSubscription(e,{...r,state:"subscribing"});const t=await this._rpcWebSocket.call(i,n);this._setSubscription(e,{...r,serverSubscriptionId:t,state:"subscribed"}),this._subscriptionCallbacksByServerSubscriptionId[t]=r.callbacks,await this._updateSubscriptions()}catch(o){if(o instanceof Error&&sr.error(`${i} error for argument`,n,o.message),!t())return;this._setSubscription(e,{...r,state:"pending"}),await this._updateSubscriptions()}})();break;case"subscribed":0===r.callbacks.size&&await(async()=>{const{serverSubscriptionId:n,unsubscribeMethod:i}=r;if(this._subscriptionsAutoDisposedByRpc.has(n))this._subscriptionsAutoDisposedByRpc.delete(n);else{this._setSubscription(e,{...r,state:"unsubscribing"}),this._setSubscription(e,{...r,state:"unsubscribing"});try{await this._rpcWebSocket.call(i,[n])}catch(n){if(n instanceof Error&&sr.error(`${i} error:`,n.message),!t())return;return this._setSubscription(e,{...r,state:"subscribed"}),void await this._updateSubscriptions()}}this._setSubscription(e,{...r,state:"unsubscribed"}),await this._updateSubscriptions()})()}})))}_handleServerNotification(e,t){const r=this._subscriptionCallbacksByServerSubscriptionId[e];void 0!==r&&r.forEach((e=>{try{e(...t)}catch(e){sr.error(e)}}))}_wsOnAccountNotification(e){const{result:t,subscription:r}=st(e,Ii);this._handleServerNotification(r,[t.value,t.context])}_makeSubscription(e,t){const r=this._nextClientSubscriptionId++,n=kn([e.method,t],!0),i=this._subscriptionsByHash[n];return void 0===i?this._subscriptionsByHash[n]={...e,args:t,callbacks:new Set([e.callback]),state:"pending"}:i.callbacks.add(e.callback),this._subscriptionHashByClientSubscriptionId[r]=n,this._subscriptionDisposeFunctionsByClientSubscriptionId[r]=async()=>{delete this._subscriptionDisposeFunctionsByClientSubscriptionId[r],delete this._subscriptionHashByClientSubscriptionId[r];const t=this._subscriptionsByHash[n];Br(void 0!==t,`Could not find a \`Subscription\` when tearing down client subscription #${r}`),t.callbacks.delete(e.callback),await this._updateSubscriptions()},this._updateSubscriptions(),r}onAccountChange(e,t,r){const n=this._buildArgs([e.toBase58()],r||this._commitment||"finalized","base64");return this._makeSubscription({callback:t,method:"accountSubscribe",unsubscribeMethod:"accountUnsubscribe"},n)}async removeAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"account change")}_wsOnProgramAccountNotification(e){const{result:t,subscription:r}=st(e,Ci);this._handleServerNotification(r,[{accountId:t.value.pubkey,accountInfo:t.value.account},t.context])}onProgramAccountChange(e,t,r,n){const i=this._buildArgs([e.toBase58()],r||this._commitment||"finalized","base64",n?{filters:n}:void 0);return this._makeSubscription({callback:t,method:"programSubscribe",unsubscribeMethod:"programUnsubscribe"},i)}async removeProgramAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"program account change")}onLogs(e,t,r){const n=this._buildArgs(["object"==typeof e?{mentions:[e.toString()]}:e],r||this._commitment||"finalized");return this._makeSubscription({callback:t,method:"logsSubscribe",unsubscribeMethod:"logsUnsubscribe"},n)}async removeOnLogsListener(e){await this._unsubscribeClientSubscription(e,"logs")}_wsOnLogsNotification(e){const{result:t,subscription:r}=st(e,So);this._handleServerNotification(r,[t.value,t.context])}_wsOnSlotNotification(e){const{result:t,subscription:r}=st(e,Ni);this._handleServerNotification(r,[t])}onSlotChange(e){return this._makeSubscription({callback:e,method:"slotSubscribe",unsubscribeMethod:"slotUnsubscribe"},[])}async removeSlotChangeListener(e){await this._unsubscribeClientSubscription(e,"slot change")}_wsOnSlotUpdatesNotification(e){const{result:t,subscription:r}=st(e,Pi);this._handleServerNotification(r,[t])}onSlotUpdate(e){return this._makeSubscription({callback:e,method:"slotsUpdatesSubscribe",unsubscribeMethod:"slotsUpdatesUnsubscribe"},[])}async removeSlotUpdateListener(e){await this._unsubscribeClientSubscription(e,"slot update")}async _unsubscribeClientSubscription(e,t){const r=this._subscriptionDisposeFunctionsByClientSubscriptionId[e];r?await r():sr.warn(`Ignored unsubscribe request because an active subscription with id \`${e}\` for '${t}' events could not be found.`)}_buildArgs(e,t,r,n){const i=t||this._commitment;if(i||r||n){let t={};r&&(t.encoding=r),i&&(t.commitment=i),n&&(t=Object.assign(t,n)),e.push(t)}return e}_buildArgsAtLeastConfirmed(e,t,r,n){const i=t||this._commitment;if(i&&!["confirmed","finalized"].includes(i))throw new Error("Using Connection with default commitment: `"+this._commitment+"`, but method requires at least `confirmed`");return this._buildArgs(e,t,r,n)}_wsOnSignatureNotification(e){const{result:t,subscription:r}=st(e,Ri);"receivedSignature"!==t.value&&this._subscriptionsAutoDisposedByRpc.add(r),this._handleServerNotification(r,"receivedSignature"===t.value?[{type:"received"},t.context]:[{type:"status",result:t.value},t.context])}onSignature(e,t,r){const n=this._buildArgs([e],r||this._commitment||"finalized"),i=this._makeSubscription({callback:(e,r)=>{if("status"===e.type){t(e.result,r);try{this.removeSignatureListener(i)}catch(e){}}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},n);return i}onSignatureWithOptions(e,t,r){const{commitment:n,...i}={...r,commitment:r&&r.commitment||this._commitment||"finalized"},o=this._buildArgs([e],n,void 0,i),s=this._makeSubscription({callback:(e,r)=>{t(e,r);try{this.removeSignatureListener(s)}catch(e){}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},o);return s}async removeSignatureListener(e){await this._unsubscribeClientSubscription(e,"signature result")}_wsOnRootNotification(e){const{result:t,subscription:r}=st(e,Di);this._handleServerNotification(r,[t])}onRootChange(e){return this._makeSubscription({callback:e,method:"rootSubscribe",unsubscribeMethod:"rootUnsubscribe"},[])}async removeRootChangeListener(e){await this._unsubscribeClientSubscription(e,"root change")}}class Oo{constructor(e){this._keypair=void 0,this._keypair=e??ur()}static generate(){return new Oo(ur())}static fromSecretKey(e,t){if(64!==e.byteLength)throw new Error("bad secret key size");const r=e.slice(32,64);if(!t||!t.skipValidation){const t=e.slice(0,32),n=cr(t);for(let e=0;e<32;e++)if(r[e]!==n[e])throw new Error("provided secretKey is invalid")}return new Oo({publicKey:r,secretKey:e})}static fromSeed(e){const t=cr(e),r=new Uint8Array(64);return r.set(e),r.set(t,32),new Oo({publicKey:t,secretKey:r})}get publicKey(){return new xr(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}}const Eo=Object.freeze({CreateLookupTable:{index:0,layout:Ge.w3([Ge.DH("instruction"),hn("recentSlot"),Ge.u8("bumpSeed")])},FreezeLookupTable:{index:1,layout:Ge.w3([Ge.DH("instruction")])},ExtendLookupTable:{index:2,layout:Ge.w3([Ge.DH("instruction"),hn(),Ge.O6(Nr(),Ge.cY(Ge.DH(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:Ge.w3([Ge.DH("instruction")])},CloseLookupTable:{index:4,layout:Ge.w3([Ge.DH("instruction")])}});class Io{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const t=Ge.DH("instruction").decode(e.data);let r;for(const[e,n]of Object.entries(Eo))if(n.index==t){r=e;break}if(!r)throw new Error("Invalid Instruction. Should be a LookupTable Instruction");return r}static decodeCreateLookupTable(e){this.checkProgramId(e.programId),this.checkKeysLength(e.keys,4);const{recentSlot:t}=un(Eo.CreateLookupTable,e.data);return{authority:e.keys[1].pubkey,payer:e.keys[2].pubkey,recentSlot:Number(t)}}static decodeExtendLookupTable(e){if(this.checkProgramId(e.programId),e.keys.length<2)throw new Error(`invalid instruction; found ${e.keys.length} keys, expected at least 2`);const{addresses:t}=un(Eo.ExtendLookupTable,e.data);return{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,payer:e.keys.length>2?e.keys[2].pubkey:void 0,addresses:t.map((e=>new xr(e)))}}static decodeCloseLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,3),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,recipient:e.keys[2].pubkey}}static decodeFreezeLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static decodeDeactivateLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(Ao.programId))throw new Error("invalid instruction; programId is not AddressLookupTable Program")}static checkKeysLength(e,t){if(e.lengthe.toBytes()))}),r=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return e.payer&&r.push({pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:mn.programId,isSigner:!1,isWritable:!1}),new Kr({programId:this.programId,keys:r,data:t})}static deactivateLookupTable(e){const t=an(Eo.DeactivateLookupTable),r=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Kr({programId:this.programId,keys:r,data:t})}static closeLookupTable(e){const t=an(Eo.CloseLookupTable),r=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.recipient,isSigner:!1,isWritable:!0}];return new Kr({programId:this.programId,keys:r,data:t})}}Ao.programId=new xr("AddressLookupTab1e1111111111111111111111111");class Co{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const t=Ge.u8("instruction").decode(e.data);let r;for(const[e,n]of Object.entries(jo))if(n.index==t){r=e;break}if(!r)throw new Error("Instruction type incorrect; not a ComputeBudgetInstruction");return r}static decodeRequestUnits(e){this.checkProgramId(e.programId);const{units:t,additionalFee:r}=un(jo.RequestUnits,e.data);return{units:t,additionalFee:r}}static decodeRequestHeapFrame(e){this.checkProgramId(e.programId);const{bytes:t}=un(jo.RequestHeapFrame,e.data);return{bytes:t}}static decodeSetComputeUnitLimit(e){this.checkProgramId(e.programId);const{units:t}=un(jo.SetComputeUnitLimit,e.data);return{units:t}}static decodeSetComputeUnitPrice(e){this.checkProgramId(e.programId);const{microLamports:t}=un(jo.SetComputeUnitPrice,e.data);return{microLamports:t}}static checkProgramId(e){if(!e.equals(No.programId))throw new Error("invalid instruction; programId is not ComputeBudgetProgram")}}const jo=Object.freeze({RequestUnits:{index:0,layout:Ge.w3([Ge.u8("instruction"),Ge.DH("units"),Ge.DH("additionalFee")])},RequestHeapFrame:{index:1,layout:Ge.w3([Ge.u8("instruction"),Ge.DH("bytes")])},SetComputeUnitLimit:{index:2,layout:Ge.w3([Ge.u8("instruction"),Ge.DH("units")])},SetComputeUnitPrice:{index:3,layout:Ge.w3([Ge.u8("instruction"),hn("microLamports")])}});class No{constructor(){}static requestUnits(e){const t=an(jo.RequestUnits,e);return new Kr({keys:[],programId:this.programId,data:t})}static requestHeapFrame(e){const t=an(jo.RequestHeapFrame,e);return new Kr({keys:[],programId:this.programId,data:t})}static setComputeUnitLimit(e){const t=an(jo.SetComputeUnitLimit,e);return new Kr({keys:[],programId:this.programId,data:t})}static setComputeUnitPrice(e){const t=an(jo.SetComputeUnitPrice,{microLamports:BigInt(e.microLamports)});return new Kr({keys:[],programId:this.programId,data:t})}}No.programId=new xr("ComputeBudget111111111111111111111111111111");const To=Ge.w3([Ge.u8("numSignatures"),Ge.u8("padding"),Ge.NX("signatureOffset"),Ge.NX("signatureInstructionIndex"),Ge.NX("publicKeyOffset"),Ge.NX("publicKeyInstructionIndex"),Ge.NX("messageDataOffset"),Ge.NX("messageDataSize"),Ge.NX("messageInstructionIndex")]);class Po{constructor(){}static createInstructionWithPublicKey(e){const{publicKey:t,message:r,signature:n,instructionIndex:o}=e;Br(32===t.length,`Public Key must be 32 bytes but received ${t.length} bytes`),Br(64===n.length,`Signature must be 64 bytes but received ${n.length} bytes`);const s=To.span,a=s+t.length,u=a+n.length,c=i.Buffer.alloc(u+r.length),l=null==o?65535:o;return To.encode({numSignatures:1,padding:0,signatureOffset:a,signatureInstructionIndex:l,publicKeyOffset:s,publicKeyInstructionIndex:l,messageDataOffset:u,messageDataSize:r.length,messageInstructionIndex:l},c),c.fill(t,s),c.fill(n,a),c.fill(r,u),new Kr({keys:[],programId:Po.programId,data:c})}static createInstructionWithPrivateKey(e){const{privateKey:t,message:r,instructionIndex:n}=e;Br(64===t.length,`Private key must be 64 bytes but received ${t.length} bytes`);try{const e=Oo.fromSecretKey(t),i=e.publicKey.toBytes(),o=fr(r,e.secretKey);return this.createInstructionWithPublicKey({publicKey:i,message:r,signature:o,instructionIndex:n})}catch(e){throw new Error(`Error creating instruction; ${e}`)}}}Po.programId=new xr("Ed25519SigVerify111111111111111111111111111"),or.utils.isValidPrivateKey;const Ro=or.getPublicKey,Do=Ge.w3([Ge.u8("numSignatures"),Ge.NX("signatureOffset"),Ge.u8("signatureInstructionIndex"),Ge.NX("ethAddressOffset"),Ge.u8("ethAddressInstructionIndex"),Ge.NX("messageDataOffset"),Ge.NX("messageDataSize"),Ge.u8("messageInstructionIndex"),Ge.av(20,"ethAddress"),Ge.av(64,"signature"),Ge.u8("recoveryId")]);class Lo{constructor(){}static publicKeyToEthAddress(e){Br(64===e.length,`Public key must be 64 bytes but received ${e.length} bytes`);try{return i.Buffer.from(Ft(hr(e))).slice(-20)}catch(e){throw new Error(`Error constructing Ethereum address: ${e}`)}}static createInstructionWithPublicKey(e){const{publicKey:t,message:r,signature:n,recoveryId:i,instructionIndex:o}=e;return Lo.createInstructionWithEthAddress({ethAddress:Lo.publicKeyToEthAddress(t),message:r,signature:n,recoveryId:i,instructionIndex:o})}static createInstructionWithEthAddress(e){const{ethAddress:t,message:r,signature:n,recoveryId:o,instructionIndex:s=0}=e;let a;a="string"==typeof t?t.startsWith("0x")?i.Buffer.from(t.substr(2),"hex"):i.Buffer.from(t,"hex"):t,Br(20===a.length,`Address must be 20 bytes but received ${a.length} bytes`);const u=12+a.length,c=u+n.length+1,l=i.Buffer.alloc(Do.span+r.length);return Do.encode({numSignatures:1,signatureOffset:u,signatureInstructionIndex:s,ethAddressOffset:12,ethAddressInstructionIndex:s,messageDataOffset:c,messageDataSize:r.length,messageInstructionIndex:s,signature:hr(n),ethAddress:hr(a),recoveryId:o},l),l.fill(hr(r),Do.span),new Kr({keys:[],programId:Lo.programId,data:l})}static createInstructionWithPrivateKey(e){const{privateKey:t,message:r,instructionIndex:n}=e;Br(32===t.length,`Private key must be 32 bytes but received ${t.length} bytes`);try{const e=hr(t),o=Ro(e,!1).slice(1),s=i.Buffer.from(Ft(hr(r))),[a,u]=((e,t)=>{const r=or.sign(e,t);return[r.toCompactRawBytes(),r.recovery]})(s,e);return this.createInstructionWithPublicKey({publicKey:o,message:r,signature:a,recoveryId:u,instructionIndex:n})}catch(e){throw new Error(`Error creating instruction; ${e}`)}}}var Bo;Lo.programId=new xr("KeccakSecp256k11111111111111111111111111111");const zo=new xr("StakeConfig11111111111111111111111111111111");class Uo{constructor(e,t){this.staker=void 0,this.withdrawer=void 0,this.staker=e,this.withdrawer=t}}class Wo{constructor(e,t,r){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=t,this.custodian=r}}Bo=Wo,Wo.default=new Bo(0,0,xr.default);class Fo{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const t=Ge.DH("instruction").decode(e.data);let r;for(const[e,n]of Object.entries(qo))if(n.index==t){r=e;break}if(!r)throw new Error("Instruction type incorrect; not a StakeInstruction");return r}static decodeInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:t,lockup:r}=un(qo.Initialize,e.data);return{stakePubkey:e.keys[0].pubkey,authorized:new Uo(new xr(t.staker),new xr(t.withdrawer)),lockup:new Wo(r.unixTimestamp,r.epoch,new xr(r.custodian))}}static decodeDelegate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,6),un(qo.Delegate,e.data),{stakePubkey:e.keys[0].pubkey,votePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[5].pubkey}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:t,stakeAuthorizationType:r}=un(qo.Authorize,e.data),n={stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new xr(t),stakeAuthorizationType:{index:r}};return e.keys.length>3&&(n.custodianPubkey=e.keys[3].pubkey),n}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{newAuthorized:t,stakeAuthorizationType:r,authoritySeed:n,authorityOwner:i}=un(qo.AuthorizeWithSeed,e.data),o={stakePubkey:e.keys[0].pubkey,authorityBase:e.keys[1].pubkey,authoritySeed:n,authorityOwner:new xr(i),newAuthorizedPubkey:new xr(t),stakeAuthorizationType:{index:r}};return e.keys.length>3&&(o.custodianPubkey=e.keys[3].pubkey),o}static decodeSplit(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:t}=un(qo.Split,e.data);return{stakePubkey:e.keys[0].pubkey,splitStakePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[2].pubkey,lamports:t}}static decodeMerge(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),un(qo.Merge,e.data),{stakePubkey:e.keys[0].pubkey,sourceStakePubKey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:t}=un(qo.Withdraw,e.data),r={stakePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:t};return e.keys.length>5&&(r.custodianPubkey=e.keys[5].pubkey),r}static decodeDeactivate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),un(qo.Deactivate,e.data),{stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static checkProgramId(e){if(!e.equals(Ko.programId))throw new Error("invalid instruction; programId is not StakeProgram")}static checkKeyLength(e,t){if(e.lengthGe.w3([Nr("staker"),Nr("withdrawer")],e))(),((e="lockup")=>Ge.w3([Ge.Wg("unixTimestamp"),Ge.Wg("epoch"),Nr("custodian")],e))()])},Authorize:{index:1,layout:Ge.w3([Ge.DH("instruction"),Nr("newAuthorized"),Ge.DH("stakeAuthorizationType")])},Delegate:{index:2,layout:Ge.w3([Ge.DH("instruction")])},Split:{index:3,layout:Ge.w3([Ge.DH("instruction"),Ge.Wg("lamports")])},Withdraw:{index:4,layout:Ge.w3([Ge.DH("instruction"),Ge.Wg("lamports")])},Deactivate:{index:5,layout:Ge.w3([Ge.DH("instruction")])},Merge:{index:7,layout:Ge.w3([Ge.DH("instruction")])},AuthorizeWithSeed:{index:8,layout:Ge.w3([Ge.DH("instruction"),Nr("newAuthorized"),Ge.DH("stakeAuthorizationType"),Pr("authoritySeed"),Nr("authorityOwner")])}}),Ho=Object.freeze({Staker:{index:0},Withdrawer:{index:1}});class Ko{constructor(){}static initialize(e){const{stakePubkey:t,authorized:r,lockup:n}=e,i=n||Wo.default,o=an(qo.Initialize,{authorized:{staker:hr(r.staker.toBuffer()),withdrawer:hr(r.withdrawer.toBuffer())},lockup:{unixTimestamp:i.unixTimestamp,epoch:i.epoch,custodian:hr(i.custodian.toBuffer())}}),s={keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Xr,isSigner:!1,isWritable:!1}],programId:this.programId,data:o};return new Kr(s)}static createAccountWithSeed(e){const t=new Qr;t.add(mn.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:n,lockup:i}=e;return t.add(this.initialize({stakePubkey:r,authorized:n,lockup:i}))}static createAccount(e){const t=new Qr;t.add(mn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:n,lockup:i}=e;return t.add(this.initialize({stakePubkey:r,authorized:n,lockup:i}))}static delegate(e){const{stakePubkey:t,authorizedPubkey:r,votePubkey:n}=e,i=an(qo.Delegate);return(new Qr).add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:nn,isSigner:!1,isWritable:!1},{pubkey:zo,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:i})}static authorize(e){const{stakePubkey:t,authorizedPubkey:r,newAuthorizedPubkey:n,stakeAuthorizationType:i,custodianPubkey:o}=e,s=an(qo.Authorize,{newAuthorized:hr(n.toBuffer()),stakeAuthorizationType:i.index}),a=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Yr,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return o&&a.push({pubkey:o,isSigner:!1,isWritable:!1}),(new Qr).add({keys:a,programId:this.programId,data:s})}static authorizeWithSeed(e){const{stakePubkey:t,authorityBase:r,authoritySeed:n,authorityOwner:i,newAuthorizedPubkey:o,stakeAuthorizationType:s,custodianPubkey:a}=e,u=an(qo.AuthorizeWithSeed,{newAuthorized:hr(o.toBuffer()),stakeAuthorizationType:s.index,authoritySeed:n,authorityOwner:hr(i.toBuffer())}),c=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:Yr,isSigner:!1,isWritable:!1}];return a&&c.push({pubkey:a,isSigner:!1,isWritable:!1}),(new Qr).add({keys:c,programId:this.programId,data:u})}static splitInstruction(e){const{stakePubkey:t,authorizedPubkey:r,splitStakePubkey:n,lamports:i}=e,o=an(qo.Split,{lamports:i});return new Kr({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static split(e){const t=new Qr;return t.add(mn.createAccount({fromPubkey:e.authorizedPubkey,newAccountPubkey:e.splitStakePubkey,lamports:0,space:this.space,programId:this.programId})),t.add(this.splitInstruction(e))}static splitWithSeed(e){const{stakePubkey:t,authorizedPubkey:r,splitStakePubkey:n,basePubkey:i,seed:o,lamports:s}=e,a=new Qr;return a.add(mn.allocate({accountPubkey:n,basePubkey:i,seed:o,space:this.space,programId:this.programId})),a.add(this.splitInstruction({stakePubkey:t,authorizedPubkey:r,splitStakePubkey:n,lamports:s}))}static merge(e){const{stakePubkey:t,sourceStakePubKey:r,authorizedPubkey:n}=e,i=an(qo.Merge);return(new Qr).add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:nn,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:i})}static withdraw(e){const{stakePubkey:t,authorizedPubkey:r,toPubkey:n,lamports:i,custodianPubkey:o}=e,s=an(qo.Withdraw,{lamports:i}),a=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:nn,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return o&&a.push({pubkey:o,isSigner:!1,isWritable:!1}),(new Qr).add({keys:a,programId:this.programId,data:s})}static deactivate(e){const{stakePubkey:t,authorizedPubkey:r}=e,n=an(qo.Deactivate);return(new Qr).add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:n})}}Ko.programId=new xr("Stake11111111111111111111111111111111111111"),Ko.space=200;class Qo{constructor(e,t,r,n){this.nodePubkey=void 0,this.authorizedVoter=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.nodePubkey=e,this.authorizedVoter=t,this.authorizedWithdrawer=r,this.commission=n}}class Vo{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const t=Ge.DH("instruction").decode(e.data);let r;for(const[e,n]of Object.entries($o))if(n.index==t){r=e;break}if(!r)throw new Error("Instruction type incorrect; not a VoteInstruction");return r}static decodeInitializeAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,4);const{voteInit:t}=un($o.InitializeAccount,e.data);return{votePubkey:e.keys[0].pubkey,nodePubkey:e.keys[3].pubkey,voteInit:new Qo(new xr(t.nodePubkey),new xr(t.authorizedVoter),new xr(t.authorizedWithdrawer),t.commission)}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:t,voteAuthorizationType:r}=un($o.Authorize,e.data);return{votePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new xr(t),voteAuthorizationType:{index:r}}}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:t,currentAuthorityDerivedKeySeed:r,newAuthorized:n,voteAuthorizationType:i}}=un($o.AuthorizeWithSeed,e.data);return{currentAuthorityDerivedKeyBasePubkey:e.keys[2].pubkey,currentAuthorityDerivedKeyOwnerPubkey:new xr(t),currentAuthorityDerivedKeySeed:r,newAuthorizedPubkey:new xr(n),voteAuthorizationType:{index:i},votePubkey:e.keys[0].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:t}=un($o.Withdraw,e.data);return{votePubkey:e.keys[0].pubkey,authorizedWithdrawerPubkey:e.keys[2].pubkey,lamports:t,toPubkey:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(Go.programId))throw new Error("invalid instruction; programId is not VoteProgram")}static checkKeyLength(e,t){if(e.lengthGe.w3([Nr("nodePubkey"),Nr("authorizedVoter"),Nr("authorizedWithdrawer"),Ge.u8("commission")],e))()])},Authorize:{index:1,layout:Ge.w3([Ge.DH("instruction"),Nr("newAuthorized"),Ge.DH("voteAuthorizationType")])},Withdraw:{index:3,layout:Ge.w3([Ge.DH("instruction"),Ge.Wg("lamports")])},AuthorizeWithSeed:{index:10,layout:Ge.w3([Ge.DH("instruction"),((e="voteAuthorizeWithSeedArgs")=>Ge.w3([Ge.DH("voteAuthorizationType"),Nr("currentAuthorityDerivedKeyOwnerPubkey"),Pr("currentAuthorityDerivedKeySeed"),Nr("newAuthorized")],e))()])}}),Yo=Object.freeze({Voter:{index:0},Withdrawer:{index:1}});class Go{constructor(){}static initializeAccount(e){const{votePubkey:t,nodePubkey:r,voteInit:n}=e,i=an($o.InitializeAccount,{voteInit:{nodePubkey:hr(n.nodePubkey.toBuffer()),authorizedVoter:hr(n.authorizedVoter.toBuffer()),authorizedWithdrawer:hr(n.authorizedWithdrawer.toBuffer()),commission:n.commission}}),o={keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Xr,isSigner:!1,isWritable:!1},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:i};return new Kr(o)}static createAccount(e){const t=new Qr;return t.add(mn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.votePubkey,lamports:e.lamports,space:this.space,programId:this.programId})),t.add(this.initializeAccount({votePubkey:e.votePubkey,nodePubkey:e.voteInit.nodePubkey,voteInit:e.voteInit}))}static authorize(e){const{votePubkey:t,authorizedPubkey:r,newAuthorizedPubkey:n,voteAuthorizationType:i}=e,o=an($o.Authorize,{newAuthorized:hr(n.toBuffer()),voteAuthorizationType:i.index}),s=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return(new Qr).add({keys:s,programId:this.programId,data:o})}static authorizeWithSeed(e){const{currentAuthorityDerivedKeyBasePubkey:t,currentAuthorityDerivedKeyOwnerPubkey:r,currentAuthorityDerivedKeySeed:n,newAuthorizedPubkey:i,voteAuthorizationType:o,votePubkey:s}=e,a=an($o.AuthorizeWithSeed,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:hr(r.toBuffer()),currentAuthorityDerivedKeySeed:n,newAuthorized:hr(i.toBuffer()),voteAuthorizationType:o.index}}),u=[{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:Yr,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!1}];return(new Qr).add({keys:u,programId:this.programId,data:a})}static withdraw(e){const{votePubkey:t,authorizedWithdrawerPubkey:r,lamports:n,toPubkey:i}=e,o=an($o.Withdraw,{lamports:n}),s=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return(new Qr).add({keys:s,programId:this.programId,data:o})}static safeWithdraw(e,t,r){if(e.lamports>t-r)throw new Error("Withdraw will leave vote account with insuffcient funds.");return Go.withdraw(e)}}Go.programId=new xr("Vote111111111111111111111111111111111111111"),Go.space=3731;const Zo=new xr("Va1idator1nfo111111111111111111111111111111"),Jo=bt({name:vt(),website:mt(vt()),details:mt(vt()),keybaseUsername:mt(vt())});class Xo{constructor(e,t){this.key=void 0,this.info=void 0,this.key=e,this.info=t}static fromConfigData(e){let t=[...e];if(2!==Dr(t))return null;const r=[];for(let e=0;e<2;e++){const e=new xr(t.slice(0,br));t=t.slice(br);const n=1===t.slice(0,1)[0];t=t.slice(1),r.push({publicKey:e,isSigner:n})}if(r[0].publicKey.equals(Zo)&&r[1].isSigner){const e=Pr().decode(i.Buffer.from(t)),n=JSON.parse(e);return ot(n,Jo),new Xo(r[1].publicKey,n)}return null}}const es=new xr("Vote111111111111111111111111111111111111111"),ts=Ge.w3([Nr("nodePubkey"),Nr("authorizedWithdrawer"),Ge.u8("commission"),Ge.I0(),Ge.O6(Ge.w3([Ge.I0("slot"),Ge.DH("confirmationCount")]),Ge.cY(Ge.DH(),-8),"votes"),Ge.u8("rootSlotValid"),Ge.I0("rootSlot"),Ge.I0(),Ge.O6(Ge.w3([Ge.I0("epoch"),Nr("authorizedVoter")]),Ge.cY(Ge.DH(),-8),"authorizedVoters"),Ge.w3([Ge.O6(Ge.w3([Nr("authorizedPubkey"),Ge.I0("epochOfLastAuthorizedSwitch"),Ge.I0("targetEpoch")]),32,"buf"),Ge.I0("idx"),Ge.u8("isEmpty")],"priorVoters"),Ge.I0(),Ge.O6(Ge.w3([Ge.I0("epoch"),Ge.I0("credits"),Ge.I0("prevCredits")]),Ge.cY(Ge.DH(),-8),"epochCredits"),Ge.w3([Ge.I0("slot"),Ge.I0("timestamp")],"lastTimestamp")]);class rs{constructor(e){this.nodePubkey=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.rootSlot=void 0,this.votes=void 0,this.authorizedVoters=void 0,this.priorVoters=void 0,this.epochCredits=void 0,this.lastTimestamp=void 0,this.nodePubkey=e.nodePubkey,this.authorizedWithdrawer=e.authorizedWithdrawer,this.commission=e.commission,this.rootSlot=e.rootSlot,this.votes=e.votes,this.authorizedVoters=e.authorizedVoters,this.priorVoters=e.priorVoters,this.epochCredits=e.epochCredits,this.lastTimestamp=e.lastTimestamp}static fromAccountData(e){const t=ts.decode(hr(e),4);let r=t.rootSlot;return t.rootSlotValid||(r=null),new rs({nodePubkey:new xr(t.nodePubkey),authorizedWithdrawer:new xr(t.authorizedWithdrawer),commission:t.commission,votes:t.votes,rootSlot:r,authorizedVoters:t.authorizedVoters.map(ns),priorVoters:os(t.priorVoters),epochCredits:t.epochCredits,lastTimestamp:t.lastTimestamp})}}function ns({authorizedVoter:e,epoch:t}){return{epoch:t,authorizedVoter:new xr(e)}}function is({authorizedPubkey:e,epochOfLastAuthorizedSwitch:t,targetEpoch:r}){return{authorizedPubkey:new xr(e),epochOfLastAuthorizedSwitch:t,targetEpoch:r}}function os({buf:e,idx:t,isEmpty:r}){return r?[]:[...e.slice(t+1).map(is),...e.slice(0,t).map(is)]}const ss={http:{devnet:"http://api.devnet.solana.com",testnet:"http://api.testnet.solana.com","mainnet-beta":"http://api.mainnet-beta.solana.com/"},https:{devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com","mainnet-beta":"https://api.mainnet-beta.solana.com/"}};function as(e,t){const r=!1===t?"http":"https";if(!e)return ss[r].devnet;const n=ss[r][e];if(!n)throw new Error(`Unknown ${r} cluster: ${e}`);return n}async function us(e,t,r,n){let i,o;r&&Object.prototype.hasOwnProperty.call(r,"lastValidBlockHeight")||r&&Object.prototype.hasOwnProperty.call(r,"nonceValue")?(i=r,o=n):o=r;const s=o&&{skipPreflight:o.skipPreflight,preflightCommitment:o.preflightCommitment||o.commitment,minContextSlot:o.minContextSlot},a=await e.sendRawTransaction(t,s),u=o&&o.commitment,c=i?e.confirmTransaction(i,u):e.confirmTransaction(a,u),l=(await c).value;if(l.err)throw new Error(`Raw transaction ${a} failed (${JSON.stringify(l)})`);return a}const cs=1e9},7198:(e,t,r)=>{"use strict";var n=r(6671).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,l=new Uint8Array(s);e[r];){var f=t[e.charCodeAt(r)];if(255===f)return;for(var d=0,h=s-1;(0!==f||d>>0,l[h]=f%256>>>0,f=f/256>>>0;if(0!==f)throw new Error("Non-zero carry");o=d,r++}for(var p=s-o;p!==s&&0===l[p];)p++;var g=n.allocUnsafe(i+(s-p));g.fill(0,0,i);for(var m=i;p!==s;)g[m++]=l[p++];return g}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=n.from(t)),!n.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var r=0,i=0,o=0,s=t.length;o!==s&&0===t[o];)o++,r++;for(var c=(s-o)*l+1>>>0,f=new Uint8Array(c);o!==s;){for(var d=t[o],h=0,p=c-1;(0!==d||h>>0,f[p]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");i=h,o++}for(var g=c-i;g!==c&&0===f[g];)g++;for(var m=u.repeat(r);g{"use strict";e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,c=new Uint8Array(o);e[r];){var l=t[e.charCodeAt(r)];if(255===l)return;for(var f=0,d=o-1;(0!==l||f>>0,c[d]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");i=f,r++}for(var h=o-i;h!==o&&0===c[h];)h++;for(var p=new Uint8Array(n+(o-h)),g=n;h!==o;)p[g++]=c[h++];return p}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,i=0,o=t.length;i!==o&&0===t[i];)i++,r++;for(var u=(o-i)*c+1>>>0,l=new Uint8Array(u);i!==o;){for(var f=t[i],d=0,h=u-1;(0!==f||d>>0,l[h]=f%s>>>0,f=f/s>>>0;if(0!==f)throw new Error("Non-zero carry");n=d,i++}for(var p=u-n;p!==u&&0===l[p];)p++;for(var g=a.repeat(r);p{"use strict";t.byteLength=function(e){var t=a(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,o=a(e),s=o[0],u=o[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,s,u)),l=0,f=u>0?s-4:s;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],s=16383,a=0,c=n-i;ac?c:a+s));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=o[s],n[o.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,n){for(var i,o,s=[],a=t;a>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},69:(e,t,r)=>{"use strict";var n=r(4686).Buffer;t.k5=function(e){{const t=n.from(e);t.reverse();const r=t.toString("hex");return 0===r.length?BigInt(0):BigInt(`0x${r}`)}},t.Bq=function(e,t){{const r=e.toString(16),i=n.from(r.padStart(2*t,"0").slice(0,2*t),"hex");return i.reverse(),i}}},6097:function(e,t,r){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(4149).Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function u(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,i){for(var o=0,s=0,a=Math.min(e.length,r),u=t;u=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&s0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i=0;i-=3)s=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)i=u(e,t,n)<=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=f}catch(e){o.prototype.inspect=f}else o.prototype.inspect=f;function f(){return(this.red?""}var d=["","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"],h=[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],p=[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];function g(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=67108863&s,u=s/67108864|0;r.words[0]=a;for(var c=1;c>>26,f=67108863&u,d=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=d;h++){var p=c-h|0;l+=(s=(i=0|e.words[p])*(o=0|t.words[h])+f)/67108864|0,f=67108863&s}r.words[c]=0|f,u=0|l}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}o.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,o=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),r=0!==o||s!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];r="";var f=this.clone();for(f.negative=0;!f.isZero();){var g=f.modrn(l).toString(e);r=(f=f.idivn(l)).isZero()?g+r:d[c-g.length]+g+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},o.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==o&&s>26,this.words[s]=67108863&t;if(0===o&&s>>13,h=0|s[1],p=8191&h,g=h>>>13,m=0|s[2],y=8191&m,v=m>>>13,w=0|s[3],b=8191&w,_=w>>>13,x=0|s[4],S=8191&x,M=x>>>13,k=0|s[5],O=8191&k,E=k>>>13,I=0|s[6],A=8191&I,C=I>>>13,j=0|s[7],N=8191&j,T=j>>>13,P=0|s[8],R=8191&P,D=P>>>13,L=0|s[9],B=8191&L,z=L>>>13,U=0|a[0],W=8191&U,F=U>>>13,q=0|a[1],H=8191&q,K=q>>>13,Q=0|a[2],V=8191&Q,$=Q>>>13,Y=0|a[3],G=8191&Y,Z=Y>>>13,J=0|a[4],X=8191&J,ee=J>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,ce=ae>>>13,le=0|a[8],fe=8191&le,de=le>>>13,he=0|a[9],pe=8191&he,ge=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(c+(n=Math.imul(f,W))|0)+((8191&(i=(i=Math.imul(f,F))+Math.imul(d,W)|0))<<13)|0;c=((o=Math.imul(d,F))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,W),i=(i=Math.imul(p,F))+Math.imul(g,W)|0,o=Math.imul(g,F);var ye=(c+(n=n+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(d,H)|0))<<13)|0;c=((o=o+Math.imul(d,K)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(y,W),i=(i=Math.imul(y,F))+Math.imul(v,W)|0,o=Math.imul(v,F),n=n+Math.imul(p,H)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0;var ve=(c+(n=n+Math.imul(f,V)|0)|0)+((8191&(i=(i=i+Math.imul(f,$)|0)+Math.imul(d,V)|0))<<13)|0;c=((o=o+Math.imul(d,$)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(b,W),i=(i=Math.imul(b,F))+Math.imul(_,W)|0,o=Math.imul(_,F),n=n+Math.imul(y,H)|0,i=(i=i+Math.imul(y,K)|0)+Math.imul(v,H)|0,o=o+Math.imul(v,K)|0,n=n+Math.imul(p,V)|0,i=(i=i+Math.imul(p,$)|0)+Math.imul(g,V)|0,o=o+Math.imul(g,$)|0;var we=(c+(n=n+Math.imul(f,G)|0)|0)+((8191&(i=(i=i+Math.imul(f,Z)|0)+Math.imul(d,G)|0))<<13)|0;c=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,W),i=(i=Math.imul(S,F))+Math.imul(M,W)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,H)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(y,V)|0,i=(i=i+Math.imul(y,$)|0)+Math.imul(v,V)|0,o=o+Math.imul(v,$)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(g,G)|0,o=o+Math.imul(g,Z)|0;var be=(c+(n=n+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,X)|0))<<13)|0;c=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(O,W),i=(i=Math.imul(O,F))+Math.imul(E,W)|0,o=Math.imul(E,F),n=n+Math.imul(S,H)|0,i=(i=i+Math.imul(S,K)|0)+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,V)|0,i=(i=i+Math.imul(b,$)|0)+Math.imul(_,V)|0,o=o+Math.imul(_,$)|0,n=n+Math.imul(y,G)|0,i=(i=i+Math.imul(y,Z)|0)+Math.imul(v,G)|0,o=o+Math.imul(v,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(g,X)|0,o=o+Math.imul(g,ee)|0;var _e=(c+(n=n+Math.imul(f,re)|0)|0)+((8191&(i=(i=i+Math.imul(f,ne)|0)+Math.imul(d,re)|0))<<13)|0;c=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(A,W),i=(i=Math.imul(A,F))+Math.imul(C,W)|0,o=Math.imul(C,F),n=n+Math.imul(O,H)|0,i=(i=i+Math.imul(O,K)|0)+Math.imul(E,H)|0,o=o+Math.imul(E,K)|0,n=n+Math.imul(S,V)|0,i=(i=i+Math.imul(S,$)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,$)|0,n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(y,X)|0,i=(i=i+Math.imul(y,ee)|0)+Math.imul(v,X)|0,o=o+Math.imul(v,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(g,re)|0,o=o+Math.imul(g,ne)|0;var xe=(c+(n=n+Math.imul(f,oe)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,oe)|0))<<13)|0;c=((o=o+Math.imul(d,se)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(N,W),i=(i=Math.imul(N,F))+Math.imul(T,W)|0,o=Math.imul(T,F),n=n+Math.imul(A,H)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul(O,V)|0,i=(i=i+Math.imul(O,$)|0)+Math.imul(E,V)|0,o=o+Math.imul(E,$)|0,n=n+Math.imul(S,G)|0,i=(i=i+Math.imul(S,Z)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,Z)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(y,re)|0,i=(i=i+Math.imul(y,ne)|0)+Math.imul(v,re)|0,o=o+Math.imul(v,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(g,oe)|0,o=o+Math.imul(g,se)|0;var Se=(c+(n=n+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((o=o+Math.imul(d,ce)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,W),i=(i=Math.imul(R,F))+Math.imul(D,W)|0,o=Math.imul(D,F),n=n+Math.imul(N,H)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,$)|0)+Math.imul(C,V)|0,o=o+Math.imul(C,$)|0,n=n+Math.imul(O,G)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(S,X)|0,i=(i=i+Math.imul(S,ee)|0)+Math.imul(M,X)|0,o=o+Math.imul(M,ee)|0,n=n+Math.imul(b,re)|0,i=(i=i+Math.imul(b,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(y,oe)|0,i=(i=i+Math.imul(y,se)|0)+Math.imul(v,oe)|0,o=o+Math.imul(v,se)|0,n=n+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(g,ue)|0,o=o+Math.imul(g,ce)|0;var Me=(c+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(B,W),i=(i=Math.imul(B,F))+Math.imul(z,W)|0,o=Math.imul(z,F),n=n+Math.imul(R,H)|0,i=(i=i+Math.imul(R,K)|0)+Math.imul(D,H)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(N,V)|0,i=(i=i+Math.imul(N,$)|0)+Math.imul(T,V)|0,o=o+Math.imul(T,$)|0,n=n+Math.imul(A,G)|0,i=(i=i+Math.imul(A,Z)|0)+Math.imul(C,G)|0,o=o+Math.imul(C,Z)|0,n=n+Math.imul(O,X)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(S,re)|0,i=(i=i+Math.imul(S,ne)|0)+Math.imul(M,re)|0,o=o+Math.imul(M,ne)|0,n=n+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,n=n+Math.imul(y,ue)|0,i=(i=i+Math.imul(y,ce)|0)+Math.imul(v,ue)|0,o=o+Math.imul(v,ce)|0,n=n+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(g,fe)|0,o=o+Math.imul(g,de)|0;var ke=(c+(n=n+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,ge)|0)+Math.imul(d,pe)|0))<<13)|0;c=((o=o+Math.imul(d,ge)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(B,H),i=(i=Math.imul(B,K))+Math.imul(z,H)|0,o=Math.imul(z,K),n=n+Math.imul(R,V)|0,i=(i=i+Math.imul(R,$)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,$)|0,n=n+Math.imul(N,G)|0,i=(i=i+Math.imul(N,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(A,X)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,ee)|0,n=n+Math.imul(O,re)|0,i=(i=i+Math.imul(O,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(S,oe)|0,i=(i=i+Math.imul(S,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,n=n+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,ce)|0,n=n+Math.imul(y,fe)|0,i=(i=i+Math.imul(y,de)|0)+Math.imul(v,fe)|0,o=o+Math.imul(v,de)|0;var Oe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;c=((o=o+Math.imul(g,ge)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(B,V),i=(i=Math.imul(B,$))+Math.imul(z,V)|0,o=Math.imul(z,$),n=n+Math.imul(R,G)|0,i=(i=i+Math.imul(R,Z)|0)+Math.imul(D,G)|0,o=o+Math.imul(D,Z)|0,n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(C,re)|0,o=o+Math.imul(C,ne)|0,n=n+Math.imul(O,oe)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,se)|0,n=n+Math.imul(S,ue)|0,i=(i=i+Math.imul(S,ce)|0)+Math.imul(M,ue)|0,o=o+Math.imul(M,ce)|0,n=n+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(_,fe)|0,o=o+Math.imul(_,de)|0;var Ee=(c+(n=n+Math.imul(y,pe)|0)|0)+((8191&(i=(i=i+Math.imul(y,ge)|0)+Math.imul(v,pe)|0))<<13)|0;c=((o=o+Math.imul(v,ge)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,G),i=(i=Math.imul(B,Z))+Math.imul(z,G)|0,o=Math.imul(z,Z),n=n+Math.imul(R,X)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,i=(i=i+Math.imul(N,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(C,oe)|0,o=o+Math.imul(C,se)|0,n=n+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,ce)|0,n=n+Math.imul(S,fe)|0,i=(i=i+Math.imul(S,de)|0)+Math.imul(M,fe)|0,o=o+Math.imul(M,de)|0;var Ie=(c+(n=n+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ge)|0)+Math.imul(_,pe)|0))<<13)|0;c=((o=o+Math.imul(_,ge)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,X),i=(i=Math.imul(B,ee))+Math.imul(z,X)|0,o=Math.imul(z,ee),n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,se)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(C,ue)|0,o=o+Math.imul(C,ce)|0,n=n+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(E,fe)|0,o=o+Math.imul(E,de)|0;var Ae=(c+(n=n+Math.imul(S,pe)|0)|0)+((8191&(i=(i=i+Math.imul(S,ge)|0)+Math.imul(M,pe)|0))<<13)|0;c=((o=o+Math.imul(M,ge)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(B,re),i=(i=Math.imul(B,ne))+Math.imul(z,re)|0,o=Math.imul(z,ne),n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,se)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,se)|0,n=n+Math.imul(N,ue)|0,i=(i=i+Math.imul(N,ce)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,ce)|0,n=n+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(C,fe)|0,o=o+Math.imul(C,de)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,ge)|0)+Math.imul(E,pe)|0))<<13)|0;c=((o=o+Math.imul(E,ge)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(B,oe),i=(i=Math.imul(B,se))+Math.imul(z,oe)|0,o=Math.imul(z,se),n=n+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,ce)|0,n=n+Math.imul(N,fe)|0,i=(i=i+Math.imul(N,de)|0)+Math.imul(T,fe)|0,o=o+Math.imul(T,de)|0;var je=(c+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,ge)|0)+Math.imul(C,pe)|0))<<13)|0;c=((o=o+Math.imul(C,ge)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(B,ue),i=(i=Math.imul(B,ce))+Math.imul(z,ue)|0,o=Math.imul(z,ce),n=n+Math.imul(R,fe)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(D,fe)|0,o=o+Math.imul(D,de)|0;var Ne=(c+(n=n+Math.imul(N,pe)|0)|0)+((8191&(i=(i=i+Math.imul(N,ge)|0)+Math.imul(T,pe)|0))<<13)|0;c=((o=o+Math.imul(T,ge)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(B,fe),i=(i=Math.imul(B,de))+Math.imul(z,fe)|0,o=Math.imul(z,de);var Te=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(i=(i=i+Math.imul(R,ge)|0)+Math.imul(D,pe)|0))<<13)|0;c=((o=o+Math.imul(D,ge)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Pe=(c+(n=Math.imul(B,pe))|0)+((8191&(i=(i=Math.imul(B,ge))+Math.imul(z,pe)|0))<<13)|0;return c=((o=Math.imul(z,ge))+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u[0]=me,u[1]=ye,u[2]=ve,u[3]=we,u[4]=be,u[5]=_e,u[6]=xe,u[7]=Se,u[8]=Me,u[9]=ke,u[10]=Oe,u[11]=Ee,u[12]=Ie,u[13]=Ae,u[14]=Ce,u[15]=je,u[16]=Ne,u[17]=Te,u[18]=Pe,0!==c&&(u[19]=c,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function v(e,t,r){return y(e,t,r)}function w(e,t){this.x=e,this.y=t}Math.imul||(m=g),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?g(this,e,t):r<1024?y(this,e,t):v(this,e,t)},w.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},w.prototype.permute=function(e,t,r,n,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,r[2*s+1]=8191&o,o>>>=13;for(s=2*t;s>=26,r+=o/67108864|0,r+=s>>>26,this.words[i]=67108863&s}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,r=e%26,i=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var s=0;for(t=0;t>>26-r}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,c=0;c=0&&(0!==l||c>=i);c--){var f=0|this.words[c];this.words[c]=l<<26-o|f>>>o,l=f&a}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,u=n.length-i.length;if("mod"!==t){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var c=0;c=0;f--){var d=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),n._ishlnsubmul(i,d,f);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);a&&(a.words[f]=d)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),r&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),r&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(r*i+(0|this.words[o]))%e;return t?-i:i},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*r;this.words[i]=o/e|0,r=o%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),u=new o(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;!(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(f)),i.iushrn(1),s.iushrn(1);for(var p=0,g=1;!(r.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(l),u.isub(f)),a.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(a),s.isub(u)):(r.isub(t),a.isub(i),u.isub(s))}return{a,b:u,gcd:r.iushln(c)}},o.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;!(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var f=0,d=1;!(r.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(r.iushrn(f);f-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),s.isub(a)):(r.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new O(e)},o.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(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)}_.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(x,_),x.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i>>22,o=s}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new x;else if("p224"===e)t=new S;else if("p192"===e)t=new M;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return b[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(!(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new o(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);n(!i.isZero());var a=new o(1).toRed(this),u=a.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var f=this.pow(l,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=s;0!==h.cmp(a);){for(var g=h,m=0;0!==g.cmp(a);m++)g=g.redSqr();n(m=0;n--){for(var c=t.words[n],l=u-1;l>=0;l--){var f=c>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4==++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}u=26}return i},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new E(e)},i(E,O),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},6710:function(e,t,r){"use strict";var n=r(4686).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.deserializeUnchecked=t.deserialize=t.serialize=t.BinaryReader=t.BinaryWriter=t.BorshError=t.baseDecode=t.baseEncode=void 0;const c=u(r(6097)),l=u(r(1122)),f=a(r(2704)),d=new("function"!=typeof TextDecoder?f.TextDecoder:TextDecoder)("utf-8",{fatal:!0});t.baseEncode=function(e){return"string"==typeof e&&(e=n.from(e,"utf8")),l.default.encode(n.from(e))},t.baseDecode=function(e){return n.from(l.default.decode(e))};const h=1024;class p extends Error{constructor(e){super(e),this.fieldPath=[],this.originalMessage=e}addToFieldPath(e){this.fieldPath.splice(0,0,e),this.message=this.originalMessage+": "+this.fieldPath.join(".")}}t.BorshError=p;class g{constructor(){this.buf=n.alloc(h),this.length=0}maybeResize(){this.buf.length<16+this.length&&(this.buf=n.concat([this.buf,n.alloc(h)]))}writeU8(e){this.maybeResize(),this.buf.writeUInt8(e,this.length),this.length+=1}writeU16(e){this.maybeResize(),this.buf.writeUInt16LE(e,this.length),this.length+=2}writeU32(e){this.maybeResize(),this.buf.writeUInt32LE(e,this.length),this.length+=4}writeU64(e){this.maybeResize(),this.writeBuffer(n.from(new c.default(e).toArray("le",8)))}writeU128(e){this.maybeResize(),this.writeBuffer(n.from(new c.default(e).toArray("le",16)))}writeU256(e){this.maybeResize(),this.writeBuffer(n.from(new c.default(e).toArray("le",32)))}writeU512(e){this.maybeResize(),this.writeBuffer(n.from(new c.default(e).toArray("le",64)))}writeBuffer(e){this.buf=n.concat([n.from(this.buf.subarray(0,this.length)),e,n.alloc(h)]),this.length+=e.length}writeString(e){this.maybeResize();const t=n.from(e,"utf8");this.writeU32(t.length),this.writeBuffer(t)}writeFixedArray(e){this.writeBuffer(n.from(e))}writeArray(e,t){this.maybeResize(),this.writeU32(e.length);for(const r of e)this.maybeResize(),t(r)}toArray(){return this.buf.subarray(0,this.length)}}function m(e,t,r){const n=r.value;r.value=function(...e){try{return n.apply(this,e)}catch(e){if(e instanceof RangeError){const t=e.code;if(["ERR_BUFFER_OUT_OF_BOUNDS","ERR_OUT_OF_RANGE"].indexOf(t)>=0)throw new p("Reached the end of buffer when deserializing")}throw e}}}t.BinaryWriter=g;class y{constructor(e){this.buf=e,this.offset=0}readU8(){const e=this.buf.readUInt8(this.offset);return this.offset+=1,e}readU16(){const e=this.buf.readUInt16LE(this.offset);return this.offset+=2,e}readU32(){const e=this.buf.readUInt32LE(this.offset);return this.offset+=4,e}readU64(){const e=this.readBuffer(8);return new c.default(e,"le")}readU128(){const e=this.readBuffer(16);return new c.default(e,"le")}readU256(){const e=this.readBuffer(32);return new c.default(e,"le")}readU512(){const e=this.readBuffer(64);return new c.default(e,"le")}readBuffer(e){if(this.offset+e>this.buf.length)throw new p(`Expected buffer length ${e} isn't within bounds`);const t=this.buf.slice(this.offset,this.offset+e);return this.offset+=e,t}readString(){const e=this.readU32(),t=this.readBuffer(e);try{return d.decode(t)}catch(e){throw new p(`Error decoding UTF-8 string: ${e}`)}}readFixedArray(e){return new Uint8Array(this.readBuffer(e))}readArray(e){const t=this.readU32(),r=Array();for(let n=0;n{w(e,t,r,n[0],i)}));else if(void 0!==n.kind)switch(n.kind){case"option":null==r?i.writeU8(0):(i.writeU8(1),w(e,t,r,n.type,i));break;case"map":i.writeU32(r.size),r.forEach(((r,o)=>{w(e,t,o,n.key,i),w(e,t,r,n.value,i)}));break;default:throw new p(`FieldType ${n} unrecognized`)}else b(e,r,i)}catch(e){throw e instanceof p&&e.addToFieldPath(t),e}}function b(e,t,r){if("function"==typeof t.borshSerialize)return void t.borshSerialize(r);const n=e.get(t.constructor);if(!n)throw new p(`Class ${t.constructor.name} is missing in schema`);if("struct"===n.kind)n.fields.map((([n,i])=>{w(e,n,t[n],i,r)}));else{if("enum"!==n.kind)throw new p(`Unexpected schema kind: ${n.kind} for ${t.constructor.name}`);{const i=t[n.field];for(let o=0;o_(e,t,r[0],n)))}if("option"===r.kind)return n.readU8()?_(e,t,r.type,n):void 0;if("map"===r.kind){let i=new Map;const o=n.readU32();for(let s=0;s=n.values.length)throw new p(`Enum index: ${i} is out of range`);const[o,s]=n.values[i],a=_(e,o,s,r);return new t({[o]:a})}throw new p(`Unexpected schema kind: ${n.kind} for ${t.constructor.name}`)}s([m],y.prototype,"readU8",null),s([m],y.prototype,"readU16",null),s([m],y.prototype,"readU32",null),s([m],y.prototype,"readU64",null),s([m],y.prototype,"readU128",null),s([m],y.prototype,"readU256",null),s([m],y.prototype,"readU512",null),s([m],y.prototype,"readString",null),s([m],y.prototype,"readFixedArray",null),s([m],y.prototype,"readArray",null),t.BinaryReader=y,t.serialize=function(e,t,r=g){const n=new r;return b(e,t,n),n.toArray()},t.deserialize=function(e,t,r,n=y){const i=new n(r),o=x(e,t,i);if(i.offset{var n=r(7198);e.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},7250:(e,t,r)=>{const n=r(5912);e.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},4686:(e,t,r)=>{"use strict";var n=r(5640);const i=r(5350),o=r(7947),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=function(e){return+e!=e&&(e=0),c.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function u(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=u(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(G(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return p(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(e.buffer,SharedArrayBuffer)))return p(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return c.from(n,t,r);const i=function(e){if(c.isBuffer(e)){const t=0|g(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||Z(e.length)?u(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function f(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return f(e),u(e<0?0:0|g(e))}function h(e){const t=e.length<0?0:0|g(e.length),r=u(t);for(let n=0;n=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||G(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(e).length;default:if(i)return n?-1:V(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,r);case"utf8":case"utf-8":return E(this,t,r);case"ascii":return A(this,t,r);case"latin1":case"binary":return C(this,t,r);case"base64":return O(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function w(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Z(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:b(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):b(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,r,n,i){let o,s=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let n=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){let r=!0;for(let n=0;ni&&(n=i):n=i;const o=t.length;let s;for(n>o/2&&(n=o/2),s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function O(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function E(e,t,r){r=Math.min(e.length,r);const n=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+s<=r){let r,n,a,u;switch(s){case 1:t<128&&(o=t);break;case 2:r=e[i+1],128==(192&r)&&(u=(31&t)<<6|63&r,u>127&&(o=u));break;case 3:r=e[i+1],n=e[i+2],128==(192&r)&&128==(192&n)&&(u=(15&t)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:r=e[i+1],n=e[i+2],a=e[i+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(u=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&a,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(e){const t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(n,i)):Uint8Array.prototype.set.call(n,t,i);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,i)}i+=t.length}return n},c.byteLength=m,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},s&&(c.prototype[s]=c.prototype.inspect),c.prototype.compare=function(e,t,r,n,i){if(G(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;let o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const a=Math.min(o,s),u=this.slice(n,i),l=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return x(this,e,t,r);case"ascii":case"latin1":case"binary":return S(this,e,t,r);case"base64":return M(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const I=4096;function A(e,t,r){let n="";r=Math.min(e.length,r);for(let i=t;in)&&(r=n);let i="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,r,n,i,o){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function R(e,t,r,n,i){q(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,r}function D(e,t,r,n,i){q(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o>>=8,e[r+6]=o,o>>=8,e[r+5]=o,o>>=8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s>>=8,e[r+2]=s,s>>=8,e[r+1]=s,s>>=8,e[r]=s,r+8}function L(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,n,i){return t=+t,r>>>=0,i||L(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function z(e,t,r,n,i){return t=+t,r>>>=0,i||L(e,0,r,8),o.write(e,t,r,n,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||T(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>=0,t>>>=0,r||T(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||T(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||T(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||T(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||T(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||T(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=X((function(e){H(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||T(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||T(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},c.prototype.readInt8=function(e,t){return e>>>=0,t||T(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||T(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||T(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||T(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||T(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=X((function(e){H(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||T(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||T(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||T(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||T(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||P(this,e,t,r,Math.pow(2,8*r)-1,0);let i=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,n||P(this,e,t,r,Math.pow(2,8*r)-1,0);let i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=X((function(e,t=0){return R(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=X((function(e,t=0){return D(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);P(this,e,t,r,n-1,-n)}let i=0,o=1,s=0;for(this[t]=255&e;++i>>=0,!n){const n=Math.pow(2,8*r-1);P(this,e,t,r,n-1,-n)}let i=r-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o|0)-s&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=X((function(e,t=0){return R(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=X((function(e,t=0){return D(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return z(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return z(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,n){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function q(e,t,r,n,i,o){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new U.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,r){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||K(t,e.length-(r+1))}(n,i,o)}function H(e,t){if("number"!=typeof e)throw new U.ERR_INVALID_ARG_TYPE(t,"number",e)}function K(e,t,r){if(Math.floor(e)!==e)throw H(e,r),new U.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new U.ERR_BUFFER_OUT_OF_BOUNDS;throw new U.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}W("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),W("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),W("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=F(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=F(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n}),RangeError);const Q=/[^+/0-9A-Za-z-_]/g;function V(e,t){let r;t=t||1/0;const n=e.length;let i=null;const o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function $(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Z(e){return e!=e}const J=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function X(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}},3042:(e,t,r)=>{"use strict";var n=r(5640),i=r(5664),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var r,s,a,u,c,l,f=!1;t||(t={}),r=t.debug||!1;try{if(a=i(),u=document.createRange(),c=document.getSelection(),(l=document.createElement("span")).textContent=e,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",(function(i){if(i.stopPropagation(),t.format)if(i.preventDefault(),void 0===i.clipboardData){r&&n.warn("unable to use e.clipboardData"),r&&n.warn("trying IE specific stuff"),window.clipboardData.clearData();var s=o[t.format]||o.default;window.clipboardData.setData(s,e)}else i.clipboardData.clearData(),i.clipboardData.setData(t.format,e);t.onCopy&&(i.preventDefault(),t.onCopy(i.clipboardData))})),document.body.appendChild(l),u.selectNodeContents(l),c.addRange(u),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");f=!0}catch(i){r&&n.error("unable to copy using execCommand: ",i),r&&n.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),f=!0}catch(i){r&&n.error("unable to copy using clipboardData: ",i),r&&n.error("falling back to prompt"),s=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(s,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(u):c.removeAllRanges()),l&&document.body.removeChild(l),a()}return f}},3432:function(e,t,r){var n;!function(i){"use strict";var o,s,a,u=9e15,c=1e9,l="0123456789abcdef",f="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",d="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",h={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-u,maxE:u,crypto:!1},p=!0,g="[DecimalError] ",m=g+"Invalid argument: ",y=g+"Precision limit exceeded",v=g+"crypto unavailable",w="[object Decimal]",b=Math.floor,_=Math.pow,x=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,S=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,M=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,k=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,O=1e7,E=7,I=f.length-1,A=d.length-1,C={toStringTag:w};function j(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(m+e)}function T(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=E,i=0):(i=Math.ceil((t+1)/E),t%=E),o=_(10,E-t),a=e[i]%o|0,null==n?t<3?(0==t?a=a/100|0:1==t&&(a=a/10|0),s=r<4&&99999==a||r>3&&49999==a||5e4==a||0==a):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==_(10,t-2)-1||(a==o/2||0==a)&&!(e[i+1]/o/100|0):t<4?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),s=(n||r<4)&&9999==a||!n&&r>3&&4999==a):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==_(10,t-3)-1,s}function P(e,t,r){for(var n,i,o=[0],s=0,a=e.length;sr-1&&(void 0===o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/r|0,o[n]%=r)}return o.reverse()}C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),D(e)},C.ceil=function(){return D(new this.constructor(this),this.e+1,2)},C.clampedTo=C.clamp=function(e,t){var r=this,n=r.constructor;if(e=new n(e),t=new n(t),!e.s||!t.s)return new n(NaN);if(e.gt(t))throw Error(m+t);return r.cmp(e)<0?e:r.cmp(t)>0?t:new n(r)},C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,u=o.s,c=e.s;if(!s||!a)return u&&c?u!==c?u:s===a?0:!s^u<0?1:-1:NaN;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==e.e)return o.e>e.e^u<0?1:-1;for(t=0,r=(n=s.length)<(i=a.length)?n:i;ta[t]^u<0?1:-1;return n===i?0:n>i^u<0?1:-1},C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+E,n.rounding=1,r=function(e,t){var r,n,i;if(t.isZero())return t;(n=t.d.length)<32?i=(1/J(4,r=Math.ceil(n/3))).toString():(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=Z(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}(n,X(n,r)),n.precision=e,n.rounding=t,D(2==a||3==a?r.neg():r,e,t,!0)):new n(1):new n(NaN)},C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,u,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(p=!1,(o=l.s*_(l.s*l,1/3))&&Math.abs(o)!=1/0?n=new f(o.toString()):(r=j(l.d),(o=((e=l.e)-r.length+1)%3)&&(r+=1==o||-2==o?"0":"00"),o=_(r,1/3),e=b((e+1)/3)-(e%3==(e<0?-1:2)),(n=new f(r=o==1/0?"5e"+e:(r=o.toExponential()).slice(0,r.indexOf("e")+1)+e)).s=l.s),s=(e=f.precision)+3;;)if(c=(u=(a=n).times(a).times(a)).plus(l),n=R(c.plus(l).times(a),c.plus(u),s+2,1),j(a.d).slice(0,s)===(r=j(n.d)).slice(0,s)){if("9999"!=(r=r.slice(s-3,s+1))&&(i||"4999"!=r)){+r&&(+r.slice(1)||"5"!=r.charAt(0))||(D(n,e+1,1),t=!n.times(n).times(n).eq(l));break}if(!i&&(D(a,e+1,0),a.times(a).times(a).eq(l))){n=a;break}s+=4,i=1}return p=!0,D(n,e,f.rounding,t)},C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(r=((e=t.length-1)-b(this.e/E))*E,e=t[e])for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r},C.dividedBy=C.div=function(e){return R(this,new this.constructor(e))},C.dividedToIntegerBy=C.divToInt=function(e){var t=this.constructor;return D(R(this,new t(e),0,1,1),t.precision,t.rounding)},C.equals=C.eq=function(e){return 0===this.cmp(e)},C.floor=function(){return D(new this.constructor(this),this.e+1,3)},C.greaterThan=C.gt=function(e){return this.cmp(e)>0},C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return 1==t||0===t},C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,(i=o.d.length)<32?t=(1/J(4,e=Math.ceil(i/3))).toString():(e=16,t="2.3283064365386962890625e-10"),o=Z(s,1,o.times(t),new s(1),!0);for(var u,c=e,l=new s(8);c--;)u=o.times(o),o=a.minus(u.times(l.minus(u.times(l))));return D(o,s.precision=r,s.rounding=n,!0)},C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,(n=i.d.length)<3)i=Z(o,2,i,i,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,i=Z(o,2,i=i.times(1/J(5,e)),i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=r,D(i,t,r,!0)},C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,R(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)},C.inverseCosine=C.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return-1!==n?0===n?t.isNeg()?U(r,i,o):new r(0):new r(NaN):t.isZero()?U(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=U(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))},C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,p=!1,r=r.times(r).minus(1).sqrt().plus(r),p=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)},C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,p=!1,r=r.times(r).plus(1).sqrt().plus(r),p=!0,n.precision=e,n.rounding=t,r.ln())},C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?D(new o(i),e,t,!0):(o.precision=r=n-i.e,i=R(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)},C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,-1!==t?0===t?((e=U(o,r+4,n).times(.5)).s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))},C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,u,c=this,l=c.constructor,f=l.precision,d=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=A)return(s=U(l,f+4,d).times(.25)).s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=A)return(s=U(l,f+4,d).times(.5)).s=c.s,s}for(l.precision=a=f+10,l.rounding=1,e=r=Math.min(28,a/E+2|0);e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(a/E),n=1,u=c.times(c),s=new l(c),i=c;-1!==e;)if(i=i.times(u),o=s.minus(i.div(n+=2)),i=i.times(u),void 0!==(s=o.plus(i.div(n+=2))).d[t])for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2},C.isNaN=function(){return!this.s},C.isNegative=C.isNeg=function(){return this.s<0},C.isPositive=C.isPos=function(){return this.s>0},C.isZero=function(){return!!this.d&&0===this.d[0]},C.lessThan=C.lt=function(e){return this.cmp(e)<0},C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1},C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,u,c=this,l=c.constructor,f=l.precision,d=l.rounding;if(null==e)e=new l(10),t=!0;else{if(r=(e=new l(e)).d,e.s<0||!r||!r[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(r=c.d,c.s<0||!r||!r[0]||c.eq(1))return new l(r&&!r[0]?-1/0:1!=c.s?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10==0;)i/=10;o=1!==i}if(p=!1,s=V(c,a=f+5),n=t?z(l,a+10):V(e,a),T((u=R(s,n,a,1)).d,i=f,d))do{if(s=V(c,a+=10),n=t?z(l,a+10):V(e,a),u=R(s,n,a,1),!o){+j(u.d).slice(i+1,i+15)+1==1e14&&(u=D(u,f+1,0));break}}while(T(u.d,i+=10,d));return p=!0,D(u,f,d)},C.minus=C.sub=function(e){var t,r,n,i,o,s,a,u,c,l,f,d,h=this,g=h.constructor;if(e=new g(e),!h.d||!e.d)return h.s&&e.s?h.d?e.s=-e.s:e=new g(e.d||h.s!==e.s?h:NaN):e=new g(NaN),e;if(h.s!=e.s)return e.s=-e.s,h.plus(e);if(c=h.d,d=e.d,a=g.precision,u=g.rounding,!c[0]||!d[0]){if(d[0])e.s=-e.s;else{if(!c[0])return new g(3===u?-0:0);e=new g(h)}return p?D(e,a,u):e}if(r=b(e.e/E),l=b(h.e/E),c=c.slice(),o=l-r){for((f=o<0)?(t=c,o=-o,s=d.length):(t=d,r=l,s=c.length),o>(n=Math.max(Math.ceil(a/E),s)+2)&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for((f=(n=c.length)<(s=d.length))&&(s=n),n=0;n0;--n)c[s++]=0;for(n=d.length;n>o;){if(c[--n](s=(o=Math.ceil(a/E))>s?o+1:s+1)&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((s=c.length)-(i=l.length)<0&&(i=s,r=l,l=c,c=r),t=0;i;)t=(c[--i]=c[i]+l[i]+t)/O|0,c[i]%=O;for(t&&(c.unshift(t),++n),s=c.length;0==c[--s];)c.pop();return e.d=c,e.e=B(c,n),p?D(e,a,u):e},C.precision=C.sd=function(e){var t,r=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(m+e);return r.d?(t=W(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t},C.round=function(){var e=this,t=e.constructor;return D(new t(e),e.e+1,t.rounding)},C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+E,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Z(e,2,t,t);r=(r=1.4*Math.sqrt(n))>16?16:0|r,t=Z(e,2,t=t.times(1/J(5,r)),t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}(n,X(n,r)),n.precision=e,n.rounding=t,D(a>2?r.neg():r,e,t,!0)):new n(NaN)},C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,u=s.e,c=s.s,l=s.constructor;if(1!==c||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(p=!1,0==(c=Math.sqrt(+s))||c==1/0?(((t=j(a)).length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=b((u+1)/2)-(u<0||u%2),n=new l(t=c==1/0?"5e"+u:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+u)):n=new l(c.toString()),r=(u=l.precision)+3;;)if(n=(o=n).plus(R(s,o,r+2,1)).times(.5),j(o.d).slice(0,r)===(t=j(n.d)).slice(0,r)){if("9999"!=(t=t.slice(r-3,r+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(D(n,u+1,1),e=!n.times(n).eq(s));break}if(!i&&(D(o,u+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}return p=!0,D(n,u,l.rounding,e)},C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(r=r.sin()).s=1,r=R(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,D(2==a||4==a?r.neg():r,e,t,!0)):new n(NaN)},C.times=C.mul=function(e){var t,r,n,i,o,s,a,u,c,l=this,f=l.constructor,d=l.d,h=(e=new f(e)).d;if(e.s*=l.s,!(d&&d[0]&&h&&h[0]))return new f(!e.s||d&&!d[0]&&!h||h&&!h[0]&&!d?NaN:d&&h?0*e.s:e.s/0);for(r=b(l.e/E)+b(e.e/E),(u=d.length)<(c=h.length)&&(o=d,d=h,h=o,s=u,u=c,c=s),o=[],n=s=u+c;n--;)o.push(0);for(n=c;--n>=0;){for(t=0,i=u+n;i>n;)a=o[i]+h[n]*d[i-n-1]+t,o[i--]=a%O|0,t=a/O|0;o[i]=(o[i]+t)%O|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=B(o,r),p?D(e,f.precision,f.rounding):e},C.toBinary=function(e,t){return ee(this,2,e,t)},C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(N(e,0,c),void 0===t?t=n.rounding:N(t,0,8),D(r,e+r.e+1,t))},C.toExponential=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=L(n,!0):(N(e,0,c),void 0===t?t=i.rounding:N(t,0,8),r=L(n=D(new i(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r},C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return void 0===e?r=L(i):(N(e,0,c),void 0===t?t=o.rounding:N(t,0,8),r=L(n=D(new o(i),e+i.e+1,t),!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r},C.toFraction=function(e){var t,r,n,i,o,s,a,u,c,l,f,d,h=this,g=h.d,y=h.constructor;if(!g)return new y(h);if(c=r=new y(1),n=u=new y(0),s=(o=(t=new y(n)).e=W(g)-h.e-1)%E,t.d[0]=_(10,s<0?E+s:s),null==e)e=o>0?t:c;else{if(!(a=new y(e)).isInt()||a.lt(c))throw Error(m+a);e=a.gt(t)?o>0?t:c:a}for(p=!1,a=new y(j(g)),l=y.precision,y.precision=o=g.length*E*2;f=R(a,t,0,1,1),1!=(i=r.plus(f.times(n))).cmp(e);)r=n,n=i,i=c,c=u.plus(f.times(i)),u=i,i=t,t=a.minus(f.times(i)),a=i;return i=R(e.minus(r),n,0,1,1),u=u.plus(i.times(c)),r=r.plus(i.times(n)),u.s=c.s=h.s,d=R(c,n,o,1).minus(h).abs().cmp(R(u,r,o,1).minus(h).abs())<1?[c,n]:[u,r],y.precision=l,p=!0,d},C.toHexadecimal=C.toHex=function(e,t){return ee(this,16,e,t)},C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:N(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(p=!1,r=R(r,e,0,t,1).times(e),p=!0,D(r)):(e.s=r.s,r=e),r},C.toNumber=function(){return+this},C.toOctal=function(e,t){return ee(this,8,e,t)},C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,u=a.constructor,c=+(e=new u(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new u(_(+a,c));if((a=new u(a)).eq(1))return a;if(n=u.precision,o=u.rounding,e.eq(1))return D(a,n,o);if((t=b(e.e/E))>=e.d.length-1&&(r=c<0?-c:c)<=9007199254740991)return i=q(u,a,r,n),e.s<0?new u(1).div(i):D(i,n,o);if((s=a.s)<0){if(tu.maxE+1||t0?s/0:0):(p=!1,u.rounding=a.s=1,r=Math.min(12,(t+"").length),(i=Q(e.times(V(a,n+r)),n)).d&&T((i=D(i,n+5,1)).d,n,o)&&(t=n+10,+j((i=D(Q(e.times(V(a,t+r)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(i=D(i,n+1,0))),i.s=s,p=!0,u.rounding=o,D(i,n,o))},C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=L(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(N(e,1,c),void 0===t?t=i.rounding:N(t,0,8),r=L(n=D(new i(n),e,t),e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r},C.toSignificantDigits=C.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(N(e,1,c),void 0===t?t=r.rounding:N(t,0,8)),D(new r(this),e,t)},C.toString=function(){var e=this,t=e.constructor,r=L(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r},C.truncated=C.trunc=function(){return D(new this.constructor(this),this.e+1,1)},C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=L(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};var R=function(){function e(e,t,r){var n,i=0,o=e.length;for(e=e.slice();o--;)n=e[o]*t+i,e[o]=n%r|0,i=n/r|0;return i&&e.unshift(i),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;it[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]1;)e.shift()}return function(n,i,o,a,u,c){var l,f,d,h,p,g,m,y,v,w,_,x,S,M,k,I,A,C,j,N,T=n.constructor,P=n.s==i.s?1:-1,R=n.d,L=i.d;if(!(R&&R[0]&&L&&L[0]))return new T(n.s&&i.s&&(R?!L||R[0]!=L[0]:L)?R&&0==R[0]||!L?0*P:P/0:NaN);for(c?(p=1,f=n.e-i.e):(c=O,p=E,f=b(n.e/p)-b(i.e/p)),j=L.length,A=R.length,w=(v=new T(P)).d=[],d=0;L[d]==(R[d]||0);d++);if(L[d]>(R[d]||0)&&f--,null==o?(M=o=T.precision,a=T.rounding):M=u?o+(n.e-i.e)+1:o,M<0)w.push(1),g=!0;else{if(M=M/p+2|0,d=0,1==j){for(h=0,L=L[0],M++;(d1&&(L=e(L,h,c),R=e(R,h,c),j=L.length,A=R.length),I=j,x=(_=R.slice(0,j)).length;x=c/2&&++C;do{h=0,(l=t(L,_,j,x))<0?(S=_[0],j!=x&&(S=S*c+(_[1]||0)),(h=S/C|0)>1?(h>=c&&(h=c-1),1==(l=t(m=e(L,h,c),_,y=m.length,x=_.length))&&(h--,r(m,j=10;h/=10)d++;v.e=d+f*p-1,D(v,u?o+v.e+1:o,a,g)}return v}}();function D(e,t,r,n){var i,o,s,a,u,c,l,f,d,h=e.constructor;e:if(null!=t){if(!(f=e.d))return e;for(i=1,a=f[0];a>=10;a/=10)i++;if((o=t-i)<0)o+=E,s=t,u=(l=f[d=0])/_(10,i-s-1)%10|0;else if((d=Math.ceil((o+1)/E))>=(a=f.length)){if(!n)break e;for(;a++<=d;)f.push(0);l=u=0,i=1,s=(o%=E)-E+1}else{for(l=a=f[d],i=1;a>=10;a/=10)i++;u=(s=(o%=E)-E+i)<0?0:l/_(10,i-s-1)%10|0}if(n=n||t<0||void 0!==f[d+1]||(s<0?l:l%_(10,i-s-1)),c=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(o>0?s>0?l/_(10,i-s):0:f[d-1])%10&1||r==(e.s<0?8:7)),t<1||!f[0])return f.length=0,c?(t-=e.e+1,f[0]=_(10,(E-t%E)%E),e.e=-t||0):f[0]=e.e=0,e;if(0==o?(f.length=d,a=1,d--):(f.length=d+1,a=_(10,E-o),f[d]=s>0?(l/_(10,i-s)%_(10,s)|0)*a:0),c)for(;;){if(0==d){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==O&&(f[0]=1));break}if(f[d]+=a,f[d]!=O)break;f[d--]=0,a=1}for(o=f.length;0===f[--o];)f.pop()}return p&&(e.e>h.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+F(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+F(-i-1)+o,r&&(n=r-s)>0&&(o+=F(n))):i>=s?(o+=F(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+F(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=F(n))),o}function B(e,t){var r=e[0];for(t*=E;r>=10;r/=10)t++;return t}function z(e,t,r){if(t>I)throw p=!0,r&&(e.precision=r),Error(y);return D(new e(f),t,1,!0)}function U(e,t,r){if(t>A)throw Error(y);return D(new e(d),t,r,!0)}function W(e){var t=e.length-1,r=t*E+1;if(t=e[t]){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function F(e){for(var t="";e--;)t+="0";return t}function q(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/E+4);for(p=!1;;){if(r%2&&te((o=o.times(t)).d,s)&&(i=!0),0===(r=b(r/2))){r=o.d.length-1,i&&0===o.d[r]&&++o.d[r];break}te((t=t.times(t)).d,s)}return p=!0,o}function H(e){return 1&e.d[e.d.length-1]}function K(e,t,r){for(var n,i=new e(t[0]),o=0;++o17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,u=g):u=t,a=new d(.03125);e.e>-2;)e=e.times(a),f+=5;for(u+=n=Math.log(_(2,f))/Math.LN10*2+5|0,r=o=s=new d(1),d.precision=u;;){if(o=D(o.times(e),u,1),r=r.times(++l),j((a=s.plus(R(o,r,u,1))).d).slice(0,u)===j(s.d).slice(0,u)){for(i=f;i--;)s=D(s.times(s),u,1);if(null!=t)return d.precision=g,s;if(!(c<3&&T(s.d,u-n,h,c)))return D(s,d.precision=g,h,p=!0);d.precision=u+=10,r=o=a=new d(1),l=0,c++}s=a}}function V(e,t){var r,n,i,o,s,a,u,c,l,f,d,h=1,g=e,m=g.d,y=g.constructor,v=y.rounding,w=y.precision;if(g.s<0||!m||!m[0]||!g.e&&1==m[0]&&1==m.length)return new y(m&&!m[0]?-1/0:1!=g.s?NaN:m?0:g);if(null==t?(p=!1,l=w):l=t,y.precision=l+=10,n=(r=j(m)).charAt(0),!(Math.abs(o=g.e)<15e14))return c=z(y,l+2,w).times(o+""),g=V(new y(n+"."+r.slice(1)),l-10).plus(c),y.precision=w,null==t?D(g,w,v,p=!0):g;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=j((g=g.times(e)).d)).charAt(0),h++;for(o=g.e,n>1?(g=new y("0."+r),o++):g=new y(n+"."+r.slice(1)),f=g,u=s=g=R(g.minus(1),g.plus(1),l,1),d=D(g.times(g),l,1),i=3;;){if(s=D(s.times(d),l,1),j((c=u.plus(R(s,new y(i),l,1))).d).slice(0,l)===j(u.d).slice(0,l)){if(u=u.times(2),0!==o&&(u=u.plus(z(y,l+2,w).times(o+""))),u=R(u,new y(h),l,1),null!=t)return y.precision=w,u;if(!T(u.d,l-10,v,a))return D(u,y.precision=w,v,p=!0);y.precision=l+=10,c=s=g=R(f.minus(1),f.plus(1),l,1),d=D(g.times(g),l,1),i=a=1}u=c,i+=2}}function $(e){return String(e.s*e.s/0)}function Y(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);n++);for(i=t.length;48===t.charCodeAt(i-1);--i);if(t=t.slice(n,i)){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%E,r<0&&(n+=E),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),k.test(t))return Y(e,t)}else if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(S.test(t))r=16,t=t.toLowerCase();else if(x.test(t))r=2;else{if(!M.test(t))throw Error(m+t);r=8}for((s=t.search(/p/i))>0?(c=+t.slice(s+1),t=t.substring(2,s)):t=t.slice(2),a=(s=t.indexOf("."))>=0,n=e.constructor,a&&(s=(u=(t=t.replace(".","")).length)-s,i=q(n,new n(r),s,2*s)),s=f=(l=P(t,r,O)).length-1;0===l[s];--s)l.pop();return s<0?new n(0*e.s):(e.e=B(l,f),e.d=l,p=!1,a&&(e=R(e,i,4*u)),c&&(e=e.times(Math.abs(c)<54?_(2,c):o.pow(2,c))),p=!0,e)}function Z(e,t,r,n,i){var o,s,a,u,c=e.precision,l=Math.ceil(c/E);for(p=!1,u=r.times(r),a=new e(n);;){if(s=R(a.times(u),new e(t++*t++),c,1),a=i?n.plus(s):n.minus(s),n=R(s.times(u),new e(t++*t++),c,1),void 0!==(s=a.plus(n)).d[l]){for(o=l;s.d[o]===a.d[o]&&o--;);if(-1==o)break}o=a,a=n,n=s,s=o}return p=!0,s.d.length=l+1,s}function J(e,t){for(var r=e;--t;)r*=e;return r}function X(e,t){var r,n=t.s<0,i=U(e,e.precision,1),o=i.times(.5);if((t=t.abs()).lte(o))return a=n?4:1,t;if((r=t.divToInt(i)).isZero())a=n?3:2;else{if((t=t.minus(r.times(i))).lte(o))return a=H(r)?n?2:3:n?4:1,t;a=H(r)?n?1:4:n?3:2}return t.minus(i).abs()}function ee(e,t,r,n){var i,o,a,u,f,d,h,p,g,m=e.constructor,y=void 0!==r;if(y?(N(r,1,c),void 0===n?n=m.rounding:N(n,0,8)):(r=m.precision,n=m.rounding),e.isFinite()){for(y?(i=2,16==t?r=4*r-3:8==t&&(r=3*r-2)):i=t,(a=(h=L(e)).indexOf("."))>=0&&(h=h.replace(".",""),(g=new m(1)).e=h.length-a,g.d=P(L(g),10,i),g.e=g.d.length),o=f=(p=P(h,10,i)).length;0==p[--f];)p.pop();if(p[0]){if(a<0?o--:((e=new m(e)).d=p,e.e=o,p=(e=R(e,g,r,n,0,i)).d,o=e.e,d=s),a=p[r],u=i/2,d=d||void 0!==p[r+1],d=n<4?(void 0!==a||d)&&(0===n||n===(e.s<0?3:2)):a>u||a===u&&(4===n||d||6===n&&1&p[r-1]||n===(e.s<0?8:7)),p.length=r,d)for(;++p[--r]>i-1;)p[r]=0,r||(++o,p.unshift(1));for(f=p.length;!p[f-1];--f);for(a=0,h="";a1)if(16==t||8==t){for(a=16==t?4:3,--f;f%a;f++)h+="0";for(f=(p=P(h,i,t)).length;!p[f-1];--f);for(a=1,h="1.";af)for(o-=f;o--;)h+="0";else ot)return e.length=t,!0}function re(e){return new this(e).abs()}function ne(e){return new this(e).acos()}function ie(e){return new this(e).acosh()}function oe(e,t){return new this(e).plus(t)}function se(e){return new this(e).asin()}function ae(e){return new this(e).asinh()}function ue(e){return new this(e).atan()}function ce(e){return new this(e).atanh()}function le(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?U(this,n,i):new this(0)).s=e.s:!e.d||t.isZero()?(r=U(this,o,1).times(.5)).s=e.s:t.s<0?(this.precision=o,this.rounding=1,r=this.atan(R(e,t,o,1)),t=U(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(R(e,t,o,1)):(r=U(this,o,1).times(t.s>0?.25:.75)).s=e.s:r=new this(NaN),r}function fe(e){return new this(e).cbrt()}function de(e){return D(e=new this(e),e.e+1,2)}function he(e,t,r){return new this(e).clamp(t,r)}function pe(e){if(!e||"object"!=typeof e)throw Error(g+"Object expected");var t,r,n,i=!0===e.defaults,o=["precision",1,c,"rounding",0,8,"toExpNeg",-u,0,"toExpPos",0,u,"maxE",0,u,"minE",-u,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2]))throw Error(m+r+": "+n);this[r]=n}if(r="crypto",i&&(this[r]=h[r]),void 0!==(n=e[r])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(m+r+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(v);this[r]=!0}else this[r]=!1}return this}function ge(e){return new this(e).cos()}function me(e){return new this(e).cosh()}function ye(e,t){return new this(e).div(t)}function ve(e){return new this(e).exp()}function we(e){return D(e=new this(e),e.e+1,3)}function be(){var e,t,r=new this(0);for(p=!1,e=0;e=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else{if(!crypto.randomBytes)throw Error(v);for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else for(;o=10;i/=10)n++;no.maxE?(i.e=NaN,i.d=null):e.e=10;r/=10)t++;return void(p?t>o.maxE?(i.e=NaN,i.d=null):t{"use strict";var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function o(e,t,n,o,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,o||e,s),u=r?r+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],a]:e._events[u].push(a):(e._events[u]=a,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,i,o;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(i=n;0!=i--;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(o=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;0!=i--;){var s=o[i];if(!("_owner"===s&&t.$$typeof||e(t[s],r[s])))return!1}return!0}return t!=t&&r!=r}},5750:(e,t)=>{var r=Object.keys;t.L=function(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;for(var n=r(e),i=n.length,o=0;o{"use strict";var n=r(5959),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function u(e){return n.isMemo(e)?s:a[e.$$typeof]||i}a[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[n.Memo]=s;var c=Object.defineProperty,l=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(p){var i=h(r);i&&i!==p&&e(t,i,n)}var s=l(r);f&&(s=s.concat(f(r)));for(var a=u(t),g=u(r),m=0;m{t.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,l=-7,f=r?i-1:0,d=r?-1:1,h=e[t+f];for(f+=d,o=h&(1<<-l)-1,h>>=-l,l+=a;l>0;o=256*o+e[t+f],f+=d,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+f],f+=d,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,n),o-=c}return(h?-1:1)*s*Math.pow(2,o-n)},t.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:o-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),(t+=s+f>=1?d/u:d*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(t*u-1)*Math.pow(2,i),s+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[r+h]=255&a,h+=p,a/=256,i-=8);for(s=s<0;e[r+h]=255&s,h+=p,s/=256,c-=8);e[r+h-p]|=128*g}},3066:(e,t,r)=>{"use strict";const n=r(7417).v4,i=r(869),o=function(e,t){if(!(this instanceof o))return new o(e,t);t||(t={}),this.options={reviver:void 0!==t.reviver?t.reviver:null,replacer:void 0!==t.replacer?t.replacer:null,generator:void 0!==t.generator?t.generator:function(){return n()},version:void 0!==t.version?t.version:2,notificationIdNull:"boolean"==typeof t.notificationIdNull&&t.notificationIdNull},this.callServer=e};e.exports=o,o.prototype.request=function(e,t,r,n){const o=this;let s=null;const a=Array.isArray(e)&&"function"==typeof t;if(1===this.options.version&&a)throw new TypeError("JSON-RPC 1.0 does not support batching");if(a||!a&&e&&"object"==typeof e&&"function"==typeof t)n=t,s=e;else{"function"==typeof r&&(n=r,r=void 0);const o="function"==typeof n;try{s=i(e,t,r,{generator:this.options.generator,version:this.options.version,notificationIdNull:this.options.notificationIdNull})}catch(e){if(o)return n(e);throw e}if(!o)return s}let u;try{u=JSON.stringify(s,this.options.replacer)}catch(e){return n(e)}return this.callServer(u,(function(e,t){o._parseResponse(e,t,n)})),s},o.prototype._parseResponse=function(e,t,r){if(e)return void r(e);if(!t)return r();let n;try{n=JSON.parse(t,this.options.reviver)}catch(e){return r(e)}if(3===r.length){if(Array.isArray(n)){const e=function(e){return void 0!==e.error},t=function(t){return!e(t)};return r(null,n.filter(e),n.filter(t))}return r(null,n.error,n.result)}r(null,n)}},869:(e,t,r)=>{"use strict";const n=r(7417).v4;e.exports=function(e,t,r,i){if("string"!=typeof e)throw new TypeError(e+" must be a string");const o="number"==typeof(i=i||{}).version?i.version:2;if(1!==o&&2!==o)throw new TypeError(o+" must be 1 or 2");const s={method:e};if(2===o&&(s.jsonrpc="2.0"),t){if("object"!=typeof t&&!Array.isArray(t))throw new TypeError(t+" must be an object, array or omitted");s.params=t}if(void 0===r){const e="function"==typeof i.generator?i.generator:function(){return n()};s.id=e(s,i)}else 2===o&&null===r?i.notificationIdNull&&(s.id=null):s.id=r;return s}},5184:(e,t,r)=>{var n,i,o;void 0===(i="function"==typeof(n=o=function(){function e(){for(var e=0,t={};ee.length)&&(t=e.length);for(var r=0,n=Array(t);ra.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");return r}o(a,e);var u=d(a);return i(a,[{key:"toDebugString",value:function(){var e,t=["BigInt["],r=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=p(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}(this);try{for(r.s();!(e=r.n()).done;){var n=e.value;t.push((n?(n>>>0).toString(16):n)+", ")}}catch(e){r.e(e)}finally{r.f()}return t.push("]"),t.join("")}},{key:"toString",value:function(){var e=0e||36this.length&&(r=this.length);for(var n=32767&e,i=e>>>15,o=0,s=t,u=0;u>>15,d=a.__imul(l,n),h=a.__imul(l,i),p=a.__imul(f,n),g=s+d+o;o=g>>>30,g&=1073741823,o+=(g+=((32767&h)<<15)+((32767&p)<<15))>>>30,s=a.__imul(f,i)+(h>>>15)+(p>>>15),this.__setDigit(u,1073741823&g)}if(0!==o||0!==s)throw new Error("implementation bug")}},{key:"__inplaceAdd",value:function(e,t,r){for(var n,i=0,o=0;o>>15,this.__setHalfDigit(t+o,32767&n);return i}},{key:"__inplaceSub",value:function(e,t,r){var n=0;if(1&t){t>>=1;for(var i=this.__digit(t),o=32767&i,s=0;s>>1;s++){var a=e.__digit(s),u=(i>>>15)-(32767&a)-n;n=1&u>>>15,this.__setDigit(t+s,(32767&u)<<15|32767&o),n=1&(o=(32767&(i=this.__digit(t+s+1)))-(a>>>15)-n)>>>15}var c=e.__digit(s),l=(i>>>15)-(32767&c)-n;if(n=1&l>>>15,this.__setDigit(t+s,(32767&l)<<15|32767&o),t+s+1>=this.length)throw new RangeError("out of bounds");!(1&r)&&(n=1&(o=(32767&(i=this.__digit(t+s+1)))-(c>>>15)-n)>>>15,this.__setDigit(t+e.length,1073709056&i|32767&o))}else{t>>=1;for(var f=0;f>>15)-(h>>>15)-(n=1&p>>>15);n=1&g>>>15,this.__setDigit(t+f,(32767&g)<<15|32767&p)}var m=this.__digit(t+f),y=e.__digit(f),v=(32767&m)-(32767&y)-n;n=1&v>>>15;var w=0;!(1&r)&&(n=1&(w=(m>>>15)-(y>>>15)-n)>>>15),this.__setDigit(t+f,(32767&w)<<15|32767&v)}return n}},{key:"__inplaceRightShift",value:function(e){if(0!==e){for(var t,r=this.__digit(0)>>>e,n=this.length-1,i=0;i>>e;this.__setDigit(n,r)}}},{key:"__digit",value:function(e){return this[e]}},{key:"__unsignedDigit",value:function(e){return this[e]>>>0}},{key:"__setDigit",value:function(e,t){this[e]=0|t}},{key:"__setDigitGrow",value:function(e,t){this[e]=0|t}},{key:"__halfDigitLength",value:function(){var e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}},{key:"__halfDigit",value:function(e){return 32767&this[e>>>1]>>>15*(1&e)}},{key:"__setHalfDigit",value:function(e,t){var r=e>>>1,n=this.__digit(r),i=1&e?32767&n|t<<15:1073709056&n|32767&t;this.__setDigit(r,i)}}],[{key:"BigInt",value:function(e){var t=Number.isFinite;if("number"==typeof e){if(0===e)return a.__zero();if(a.__isOneDigitInt(e))return 0>e?a.__oneDigit(-e,!0):a.__oneDigit(e,!1);if(!t(e)||s(e)!==e)throw new RangeError("The number "+e+" cannot be converted to BigInt because it is not an integer");return a.__fromDouble(e)}if("string"==typeof e){var n=a.__fromString(e);if(null===n)throw new SyntaxError("Cannot convert "+e+" to a BigInt");return n}if("boolean"==typeof e)return!0===e?a.__oneDigit(1,!1):a.__zero();if("object"===r(e)){if(e.constructor===a)return e;var i=a.__toPrimitive(e);return a.BigInt(i)}throw new TypeError("Cannot convert "+e+" to a BigInt")}},{key:"toNumber",value:function(e){var t=e.length;if(0===t)return 0;if(1===t){var r=e.__unsignedDigit(0);return e.sign?-r:r}var n=e.__digit(t-1),i=a.__clz30(n),o=30*t-i;if(1024>>=12;var d=l-12,h=12<=l?0:u<<20+l,p=20+l;for(0>>30-d,h=u<>>30-p,p-=30;var g=a.__decideRounding(e,p,c,u);if((1===g||0===g&&!(1&~h))&&0==(h=h+1>>>0)&&0!=++f>>>20&&(f=0,1023<++s))return e.sign?-1/0:1/0;var m=e.sign?-2147483648:0;return s=s+1023<<20,a.__kBitConversionInts[1]=m|s|f,a.__kBitConversionInts[0]=h,a.__kBitConversionDouble[0]}},{key:"unaryMinus",value:function(e){if(0===e.length)return e;var t=e.__copy();return t.sign=!e.sign,t}},{key:"bitwiseNot",value:function(e){return e.sign?a.__absoluteSubOne(e).__trim():a.__absoluteAddOne(e,!0)}},{key:"exponentiate",value:function(e,t){if(t.sign)throw new RangeError("Exponent must be positive");if(0===t.length)return a.__oneDigit(1,!1);if(0===e.length)return e;if(1===e.length&&1===e.__digit(0))return!e.sign||1&t.__digit(0)?e:a.unaryMinus(e);if(1=a.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===e.length&&2===e.__digit(0)){var n=1+(0|r/30),i=new a(n,e.sign&&!!(1&r));i.__initializeDigits();var o=1<>=1;0!==r;r>>=1)u=a.multiply(u,u),1&r&&(s=null===s?u:a.multiply(s,u));return s}},{key:"multiply",value:function(e,t){if(0===e.length)return e;if(0===t.length)return t;var r=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&r--;var n=new a(r,e.sign!==t.sign);n.__initializeDigits();for(var i=0;ia.__absoluteCompare(e,t))return a.__zero();var r,n=e.sign!==t.sign,i=t.__unsignedDigit(0);if(1===t.length&&32767>=i){if(1===i)return n===e.sign?e:a.unaryMinus(e);r=a.__absoluteDivSmall(e,i,null)}else r=a.__absoluteDivLarge(e,t,!0,!1);return r.sign=n,r.__trim()}},{key:"remainder",value:function(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>a.__absoluteCompare(e,t))return e;var r=t.__unsignedDigit(0);if(1===t.length&&32767>=r){if(1===r)return a.__zero();var n=a.__absoluteModSmall(e,r);return 0===n?a.__zero():a.__oneDigit(n,e.sign)}var i=a.__absoluteDivLarge(e,t,!1,!0);return i.sign=e.sign,i.__trim()}},{key:"add",value:function(e,t){var r=e.sign;return r===t.sign?a.__absoluteAdd(e,t,r):0<=a.__absoluteCompare(e,t)?a.__absoluteSub(e,t,r):a.__absoluteSub(t,e,!r)}},{key:"subtract",value:function(e,t){var r=e.sign;return r===t.sign?0<=a.__absoluteCompare(e,t)?a.__absoluteSub(e,t,r):a.__absoluteSub(t,e,!r):a.__absoluteAdd(e,t,r)}},{key:"leftShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?a.__rightShiftByAbsolute(e,t):a.__leftShiftByAbsolute(e,t)}},{key:"signedRightShift",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?a.__leftShiftByAbsolute(e,t):a.__rightShiftByAbsolute(e,t)}},{key:"unsignedRightShift",value:function(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}},{key:"lessThan",value:function(e,t){return 0>a.__compareToBigInt(e,t)}},{key:"lessThanOrEqual",value:function(e,t){return 0>=a.__compareToBigInt(e,t)}},{key:"greaterThan",value:function(e,t){return 0(e=s(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return a.__zero();if(e>=a.__kMaxLengthBits)return t;var r=0|(e+29)/30;if(t.length(e=s(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return a.__zero();if(t.sign){if(e>a.__kMaxLengthBits)throw new RangeError("BigInt too big");return a.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=a.__kMaxLengthBits)return t;var r=0|(e+29)/30;if(t.length>>n)return t}return a.__truncateToNBits(e,t)}},{key:"ADD",value:function(e,t){if(e=a.__toPrimitive(e),t=a.__toPrimitive(t),"string"==typeof e)return"string"!=typeof t&&(t=t.toString()),e+t;if("string"==typeof t)return e.toString()+t;if(e=a.__toNumeric(e),t=a.__toNumeric(t),a.__isBigInt(e)&&a.__isBigInt(t))return a.add(e,t);if("number"==typeof e&&"number"==typeof t)return e+t;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}},{key:"LT",value:function(e,t){return a.__compare(e,t,0)}},{key:"LE",value:function(e,t){return a.__compare(e,t,1)}},{key:"GT",value:function(e,t){return a.__compare(e,t,2)}},{key:"GE",value:function(e,t){return a.__compare(e,t,3)}},{key:"EQ",value:function(e,t){for(;;){if(a.__isBigInt(e))return a.__isBigInt(t)?a.equal(e,t):a.EQ(t,e);if("number"==typeof e){if(a.__isBigInt(t))return a.__equalToNumber(t,e);if("object"!==r(t))return e==t;t=a.__toPrimitive(t)}else if("string"==typeof e){if(a.__isBigInt(t))return null!==(e=a.__fromString(e))&&a.equal(e,t);if("object"!==r(t))return e==t;t=a.__toPrimitive(t)}else if("boolean"==typeof e){if(a.__isBigInt(t))return a.__equalToNumber(t,+e);if("object"!==r(t))return e==t;t=a.__toPrimitive(t)}else if("symbol"===r(e)){if(a.__isBigInt(t))return!1;if("object"!==r(t))return e==t;t=a.__toPrimitive(t)}else{if("object"!==r(e))return e==t;if("object"===r(t)&&t.constructor!==a)return e==t;e=a.__toPrimitive(e)}}}},{key:"NE",value:function(e,t){return!a.EQ(e,t)}},{key:"DataViewGetBigInt64",value:function(e,t){var r=!!(2>>30),c.__setDigit(2,s>>>28),c.__trim()}},{key:"DataViewSetBigInt64",value:function(e,t,r){var n=!!(3>>2,2t)i=-t-1;else{if(0===r)return-1;r--,n=e.__digit(r),i=29}var o=1<>>20)-1023,n=1+(0|r/30),i=new a(n,0>e),o=1048575&a.__kBitConversionInts[1]|1048576,s=a.__kBitConversionInts[0],u=r%30,c=0;if(u<20){var l=20-u;c=l+32,t=o>>>l,o=o<<32-l|s>>>l,s<<=32-l}else if(20===u)c=32,t=o,o=s,s=0;else{var f=u-20;c=32-f,t=o<>>32-f,o=s<>>2,o=o<<30|s>>>2,s<<=30):t=0,i.__setDigit(d,t);return i.__trim()}},{key:"__isWhitespace",value:function(e){return!!(13>=e&&9<=e)||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?10>=(e&=131071)||40==e||41==e||47==e||95==e||4096==e:65279==e)}},{key:"__fromString",value:function(e){var t=11073741824/u)return null;var l=new a(0|(29+(u*s+c>>>a.__kBitsPerCharTableShift))/30,!1),f=10>t?t:10,d=10>>0>>0>>a.__kBitsPerCharTableShift)/30;l.__inplaceMultiplyAdd(y,m,w)}while(!h)}else{u>>=a.__kBitsPerCharTableShift;var b=[],_=[],x=!1;do{for(var S,M=0,k=0;;){if(S=void 0,o-48>>>0>>0>>u-(o-=30))}if(0!==i){if(n>=e.length)throw new Error("implementation bug");e.__setDigit(n++,i)}for(;n>>1)+(85&n))>>>2)+(51&n))>>>4)+(15&n),o=t-1,s=e.__digit(r-1),u=0|(30*r-a.__clz30(s)+i-1)/i;if(e.sign&&u++,268435456>>m,d=30-m;d>=i;)c[l--]=a.__kConversionChars[f&o],f>>>=i,d-=i}var y=(f|s<>>i-d;0!==f;)c[l--]=a.__kConversionChars[f&o],f>>>=i;if(e.sign&&(c[l--]="-"),-1!==l)throw new Error("implementation bug");return c.join("")}},{key:"__toStringGeneric",value:function(e,t,r){var n=e.length;if(0===n)return"";if(1===n){var i=e.__unsignedDigit(0).toString(t);return!1===r&&e.sign&&(i="-"+i),i}var o,s,u=30*n-a.__clz30(e.__digit(n-1)),c=a.__kMaxBitsPerChar[t]-1,l=u*a.__kBitsPerCharTableMultiplier,f=1+(l=0|(l+=c-1)/c)>>1,d=a.exponentiate(a.__oneDigit(t,!1),a.__oneDigit(f,!1)),h=d.__unsignedDigit(0);if(1===d.length&&32767>=h){(o=new a(e.length,!1)).__initializeDigits();for(var p,g=0,m=2*e.length-1;0<=m;m--)p=g<<15|e.__halfDigit(m),o.__setHalfDigit(m,0|p/h),g=0|p%h;s=g.toString(t)}else{var y=a.__absoluteDivLarge(e,d,!0,!0);o=y.quotient;var v=y.remainder.__trim();s=a.__toStringGeneric(v,t,!0)}o.__trim();for(var w=a.__toStringGeneric(o,t,!0);s.lengthn?a.__absoluteLess(r):0}},{key:"__compareToNumber",value:function(e,r){if(a.__isOneDigitInt(r)){var n=e.sign,i=0>r;if(n!==i)return a.__unequalSign(n);if(0===e.length){if(i)throw new Error("implementation bug");return 0===r?0:-1}if(1o?a.__absoluteGreater(n):st)return a.__unequalSign(r);if(0===t)throw new Error("implementation bug: should be handled elsewhere");if(0===e.length)return-1;a.__kBitConversionDouble[0]=t;var n=2047&a.__kBitConversionInts[1]>>>20;if(2047==n)throw new Error("implementation bug: handled elsewhere");var i=n-1023;if(0>i)return a.__absoluteGreater(r);var o=e.length,s=e.__digit(o-1),u=a.__clz30(s),c=30*o-u,l=i+1;if(cl)return a.__absoluteGreater(r);var f=1048576|1048575&a.__kBitConversionInts[1],d=a.__kBitConversionInts[0],h=29-u;if(h!==(0|(c-1)%30))throw new Error("implementation bug");var p,g=0;if(h<20){var m=20-h;g=m+32,p=f>>>m,f=f<<32-m|d>>>m,d<<=32-m}else if(20===h)g=32,p=f,f=d,d=0;else{var y=h-20;g=32-y,p=f<>>32-y,f=d<>>=0)>(p>>>=0))return a.__absoluteGreater(r);if(s>>2,f=f<<30|d>>>2,d<<=30):p=0;var w=e.__unsignedDigit(v);if(w>p)return a.__absoluteGreater(r);if(wr&&e.__unsignedDigit(0)===t(r):0===a.__compareToDouble(e,r)}},{key:"__comparisonResultToBool",value:function(e,t){return 0===t?0>e:1===t?0>=e:2===t?0t;case 3:return e>=t}if(a.__isBigInt(e)&&"string"==typeof t)return null!==(t=a.__fromString(t))&&a.__comparisonResultToBool(a.__compareToBigInt(e,t),r);if("string"==typeof e&&a.__isBigInt(t))return null!==(e=a.__fromString(e))&&a.__comparisonResultToBool(a.__compareToBigInt(e,t),r);if(e=a.__toNumeric(e),t=a.__toNumeric(t),a.__isBigInt(e)){if(a.__isBigInt(t))return a.__comparisonResultToBool(a.__compareToBigInt(e,t),r);if("number"!=typeof t)throw new Error("implementation bug");return a.__comparisonResultToBool(a.__compareToNumber(e,t),r)}if("number"!=typeof e)throw new Error("implementation bug");if(a.__isBigInt(t))return a.__comparisonResultToBool(a.__compareToNumber(t,e),2^r);if("number"!=typeof t)throw new Error("implementation bug");return 0===r?et:3===r?e>=t:void 0}},{key:"__absoluteAdd",value:function(e,t,r){if(e.length>>30,o.__setDigit(u,1073741823&i);for(;u>>30,o.__setDigit(u,1073741823&c)}return u>>30,i.__setDigit(s,1073741823&n);for(;s>>30,i.__setDigit(s,1073741823&u)}return i.__trim()}},{key:"__absoluteAddOne",value:function(e,t){var r=2>>30,r.__setDigit(s,1073741823&i);return 0!==o&&r.__setDigitGrow(n,1),r}},{key:"__absoluteSubOne",value:function(e,t){for(var r,n=e.length,i=new a(t=t||n,!1),o=1,s=0;s>>30,i.__setDigit(s,1073741823&r);if(0!==o)throw new Error("implementation bug");for(var u=n;un?0:e.__unsignedDigit(n)>t.__unsignedDigit(n)?1:-1}},{key:"__multiplyAccumulate",value:function(e,t,r,n){if(0!==t){for(var i=32767&t,o=t>>>15,s=0,u=0,c=0;c>>15,p=a.__imul(d,i),g=a.__imul(d,o),m=a.__imul(h,i);s=(l+=u+p+s)>>>30,l&=1073741823,s+=(l+=((32767&g)<<15)+((32767&m)<<15))>>>30,u=a.__imul(h,o)+(g>>>15)+(m>>>15),r.__setDigit(n,1073741823&l)}for(;0!==s||0!==u;n++){var y=r.__digit(n);y+=s+u,u=0,s=y>>>30,r.__setDigit(n,1073741823&y)}}}},{key:"__internalMultiplyAdd",value:function(e,t,r,n,i){for(var o=r,s=0,u=0;u>>15,t),d=l+((32767&f)<<15)+s+o;o=d>>>30,s=f>>>15,i.__setDigit(u,1073741823&d)}if(i.length>n)for(i.__setDigit(n++,o+s);n>>0,s=0|o/t,u=0|(o=((n=0|o%t)<<15|e.__halfDigit(i-1))>>>0)/t;n=0|o%t,r.__setDigit(i>>>1,s<<15|u)}return r}},{key:"__absoluteModSmall",value:function(e,t){for(var r=0,n=2*e.length-1;0<=n;n--)r=0|((r<<15|e.__halfDigit(n))>>>0)%t;return r}},{key:"__absoluteDivLarge",value:function(e,t,r,n){var i=t.__halfDigitLength(),o=t.length,s=e.__halfDigitLength()-i,u=null;r&&(u=new a(s+2>>>1,!1)).__initializeDigits();var c=new a(i+2>>>1,!1);c.__initializeDigits();var l=a.__clz15(t.__halfDigit(i-1));0>>0;g=0|y/d;for(var v=0|y%d,w=t.__halfDigit(i-2),b=f.__halfDigit(p+i-2);a.__imul(g,w)>>>0>(v<<16|b)>>>0&&(g--,!(32767<(v+=d))););}a.__internalMultiplyAdd(t,g,0,o,c);var _=f.__inplaceSub(c,p,i+1);0!==_&&(_=f.__inplaceAdd(t,p,i),f.__setHalfDigit(p+i,32767&f.__halfDigit(p+i)+_),g--),r&&(1&p?h=g<<15:u.__setDigit(p>>>1,h|g))}if(n)return f.__inplaceRightShift(l),r?{quotient:u,remainder:f}:f;if(r)return u;throw new Error("unreachable")}},{key:"__clz15",value:function(e){return a.__clz30(e)-15}},{key:"__specialLeftShift",value:function(e,t,r){var n=e.length,i=new a(n+r,!1);if(0===t){for(var o=0;o>>30-t;return 0r)throw new RangeError("BigInt too big");var n=0|r/30,i=r%30,o=e.length,s=0!==i&&0!=e.__digit(o-1)>>>30-i,u=o+n+(s?1:0),c=new a(u,e.sign);if(0===i){for(var l=0;l>>30-i;if(s)c.__setDigit(o+n,f);else if(0!==f)throw new Error("implementation bug")}return c.__trim()}},{key:"__rightShiftByAbsolute",value:function(e,t){var r=e.length,n=e.sign,i=a.__toShiftAmount(t);if(0>i)return a.__rightShiftByMaximum(n);var o=0|i/30,s=i%30,u=r-o;if(0>=u)return a.__rightShiftByMaximum(n);var c=!1;if(n)if(e.__digit(o)&(1<>>s,g=r-o-1,m=0;m>>s;f.__setDigit(g,p)}return c&&(f=a.__absoluteAddOne(f,!0,f)),f.__trim()}},{key:"__rightShiftByMaximum",value:function(e){return e?a.__oneDigit(1,!0):a.__zero()}},{key:"__toShiftAmount",value:function(e){if(1a.__kMaxLengthBits?-1:t}},{key:"__toPrimitive",value:function(e){var t=1>>u}return n.__setDigit(i,s),n.__trim()}},{key:"__truncateAndSubFromPowerOfTwo",value:function(e,t,r){for(var n,i=Math.min,o=0|(e+29)/30,s=new a(o,r),u=0,c=o-1,l=0,f=i(c,t.length);u>>30,s.__setDigit(u,1073741823&n);for(;u>>g)-l,d&=m-1}return s.__setDigit(c,d),s.__trim()}},{key:"__digitPow",value:function(e,t){for(var r=1;0>>=1,e*=e;return r}},{key:"__isOneDigitInt",value:function(e){return(1073741823&e)===e}}]),a}(l(Array));return m.__kMaxLength=33554432,m.__kMaxLengthBits=m.__kMaxLength<<5,m.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],m.__kBitsPerCharTableShift=5,m.__kBitsPerCharTableMultiplier=1<>>0)/t)},m.__imul=e||function(e,t){return 0|e*t},m}()},2889:(e,t,r)=>{var n=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,s=/^0o[0-7]+$/i,a=parseInt,u="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,c="object"==typeof self&&self&&self.Object===Object&&self,l=u||c||Function("return this")(),f=Object.prototype.toString,d=Math.max,h=Math.min,p=function(){return l.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function m(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==f.call(e)}(e))return NaN;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var r=o.test(e);return r||s.test(e)?a(e.slice(2),r?2:8):i.test(e)?NaN:+e}e.exports=function(e,t,r){var n,i,o,s,a,u,c=0,l=!1,f=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function v(t){var r=n,o=i;return n=i=void 0,c=t,s=e.apply(o,r)}function w(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-c>=o}function b(){var e=p();if(w(e))return _(e);a=setTimeout(b,function(e){var r=t-(e-u);return f?h(r,o-(e-c)):r}(e))}function _(e){return a=void 0,y&&n?v(e):(n=i=void 0,s)}function x(){var e=p(),r=w(e);if(n=arguments,i=this,u=e,r){if(void 0===a)return function(e){return c=e,a=setTimeout(b,t),l?v(e):s}(u);if(f)return a=setTimeout(b,t),v(u)}return void 0===a&&(a=setTimeout(b,t)),s}return t=m(t)||0,g(r)&&(l=!!r.leading,o=(f="maxWait"in r)?d(m(r.maxWait)||0,t):o,y="trailing"in r?!!r.trailing:y),x.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=i=a=void 0},x.flush=function(){return void 0===a?s:_(p())},x}},2537:(e,t)=>{"use strict";t.v=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,r){var n=t+"{}";r&&(n=r+"{"+n+"}");var i=r?e.msh.sheet:e.sh.sheet,o=i.insertRule(n,i.cssRules.length),s=(i.cssRules||i.rules)[o];if(s.index=o,r){var a=(s.cssRules||s.rules)[0];s.style=a.style,s.styleMap=a.styleMap}return s})}},3712:(e,t,r)=>{"use strict";var n=r(8949).t;t.v=function(e){if(e.client){var t=e.kebab;r.prototype.diff=function(e){var r,n=this.decl,i=this.rule.style;for(r in n)void 0===e[r]&&i.removeProperty(r);for(r in e)e[r]!==n[r]&&i.setProperty(t(r),e[r]);this.decl=e},r.prototype.del=function(){n(this.rule)},i.prototype.diff=function(e){var t=this.tree;for(var n in t)if(void 0===e[n]){var i=t[n];for(var o in i)i[o].del()}for(var n in e)if(void 0===t[n])for(var o in e[n])(u=new r(o,n)).diff(e[n][o]),e[n][o]=u;else{var s=t[n],a=e[n];for(var o in s)a[o]||s[o].del();for(var o in a){var u;(u=s[o])?(u.diff(a[o]),a[o]=u):((u=new r(o,n)).diff(a[o]),a[o]=u)}}this.tree=e},e.VRule=r,e.VSheet=i}function r(t,r){this.rule=e.createRule(t,r),this.decl={}}function i(){this.tree={}}}},6925:(e,t)=>{t.J=function e(t,r,n,i){var o,s,a={},u=!1;for(o in r)"object"!=typeof(s=r[o])&&(u=!0,a[o]=s);for(o in u&&(t[i]||(t[i]={}),t[i][n]=a),r)if("object"==typeof(s=r[o]))if("@"===o[0])e(t,s,n,o);else{var c=o.indexOf("&")>-1,l=n.split(",");if(c)for(var f=0;f{t.t=function(e){var t=e.index,r=e.parentStyleSheet,n=r.cssRules||r.rules;for(t=Math.max(t,n.length-1);t>=0;){if(n[t]===e){r.deleteRule(t);break}t--}}},2148:(e,t)=>{"use strict";var r=/[A-Z]/g;t.v=function(e){var t=(e=e||{}).assign||Object.assign,n=t({raw:"",pfx:"_",client:"object"==typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(r,"-$&").toLowerCase()},decl:function(e,t){return(e=n.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return"_"+(t>>>0).toString(36)}(n.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){n.raw+=e}},e);return n.client&&(n.sh||document.head.appendChild(n.sh=document.createElement("style")),n.putRaw=function(e){var t=n.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(e){}}),n.put=function(e,t,r){var i,o,s="",a=[];for(i in t)(o=t[i])instanceof Object&&!(o instanceof Array)?a.push(i):s+=n.decl(i,o,e,r);s&&(s=e+"{"+s+"}",n.putRaw(r?r+"{"+s+"}":s));for(var u=0;u{var n=r(5640),i="undefined"!=typeof Element,o="function"==typeof Map,s="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function u(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var r,n,c,l;if(Array.isArray(e)){if((r=e.length)!=t.length)return!1;for(n=r;0!=n--;)if(!u(e[n],t[n]))return!1;return!0}if(o&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(l=e.entries();!(n=l.next()).done;)if(!t.has(n.value[0]))return!1;for(l=e.entries();!(n=l.next()).done;)if(!u(n.value[1],t.get(n.value[0])))return!1;return!0}if(s&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(l=e.entries();!(n=l.next()).done;)if(!t.has(n.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if((r=e.length)!=t.length)return!1;for(n=r;0!=n--;)if(e[n]!==t[n])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof t.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof t.toString)return e.toString()===t.toString();if((r=(c=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=r;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,c[n]))return!1;if(i&&e instanceof Element)return!1;for(n=r;0!=n--;)if(("_owner"!==c[n]&&"__v"!==c[n]&&"__o"!==c[n]||!e.$$typeof)&&!u(e[c[n]],t[c[n]]))return!1;return!0}return e!=e&&t!=t}e.exports=function(e,t){try{return u(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return n.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},5843:(e,t)=>{"use strict";var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,a=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,l=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,p=r?Symbol.for("react.suspense_list"):60120,g=r?Symbol.for("react.memo"):60115,m=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,v=r?Symbol.for("react.fundamental"):60117,w=r?Symbol.for("react.responder"):60118,b=r?Symbol.for("react.scope"):60119;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case l:case f:case o:case a:case s:case h:return e;default:switch(e=e&&e.$$typeof){case c:case d:case m:case g:case u:return e;default:return t}}case i:return t}}}function x(e){return _(e)===f}t.AsyncMode=l,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=u,t.Element=n,t.ForwardRef=d,t.Fragment=o,t.Lazy=m,t.Memo=g,t.Portal=i,t.Profiler=a,t.StrictMode=s,t.Suspense=h,t.isAsyncMode=function(e){return x(e)||_(e)===l},t.isConcurrentMode=x,t.isContextConsumer=function(e){return _(e)===c},t.isContextProvider=function(e){return _(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return _(e)===d},t.isFragment=function(e){return _(e)===o},t.isLazy=function(e){return _(e)===m},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===i},t.isProfiler=function(e){return _(e)===a},t.isStrictMode=function(e){return _(e)===s},t.isSuspense=function(e){return _(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===a||e===s||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===g||e.$$typeof===u||e.$$typeof===c||e.$$typeof===d||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b||e.$$typeof===y)},t.typeOf=_},5959:(e,t,r)=>{"use strict";e.exports=r(5843)},8633:(e,t,r)=>{"use strict";r.r(t),r.d(t,{NumberFormatBase:()=>k,NumericFormat:()=>j,PatternFormat:()=>D,getNumericCaretBoundary:()=>A,getPatternCaretBoundary:()=>P,numericFormatter:()=>O,patternFormatter:()=>N,removeNumericFormat:()=>I,removePatternFormat:()=>T,useNumericFormat:()=>C,usePatternFormat:()=>R});var n,i=r(758);function o(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i=a?i+=h("0",s-a):i=(i.substring(0,s)||"0")+"."+i.substring(s),r+i}function g(e,t,r){if(-1!==["","-"].indexOf(e))return e;var n=(-1!==e.indexOf(".")||r)&&t,i=f(e),o=i.beforeDecimal,s=i.afterDecimal,a=i.hasNegation,u=parseFloat("0."+(s||"0")),c=(s.length<=t?"0."+s:u.toFixed(t)).split(".");return(a?"-":"")+o.split("").reverse().reduce((function(e,t,r){return e.length>r?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e}),c[0])+(n?".":"")+d(c[1]||"",t,r)}function m(e,t){if(e.value=e.value,null!==e){if(e.createTextRange){var r=e.createTextRange();return r.move("character",t),r.select(),!0}return e.selectionStart||0===e.selectionStart?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}function y(e){return Math.max(e.selectionStart,e.selectionEnd)}function v(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""}}function w(e,t){return void 0===e&&(e=" "),"string"==typeof e?e:e[t]||" "}function b(e,t,r,n){var i,o,s=e.length;if(i=t,o=s,t=Math.min(Math.max(i,0),o),"left"===n){for(;t>=0&&!r[t];)t--;-1===t&&(t=r.indexOf(!0))}else{for(;t<=s&&!r[t];)t++;t>s&&(t=r.lastIndexOf(!0))}return-1===t&&(t=s),t}function _(e){for(var t=Array.from({length:e.length+1}).map((function(){return!0})),r=0,n=t.length;r0&&-1===f[g];)g--;var y=-1===g||-1===f[g]?0:f[g]+1;return y>m?m:n-yr&&i-n>r;)n++;return{from:{start:r,end:i-n},to:{start:r,end:o-n}}}(R,e),i=Object.assign(Object.assign({},n),{lastValue:R}),o=d(e,i),s=H(o);if(o=d(s,void 0),v&&!v(K(s,o))){var a=t.target,u=y(a),c=$(e,R,u);return Q(a,c,R),!1}return Y({formattedValue:s,numAsString:o,inputValue:e,event:t,source:r,setCaretPosition:!0,input:t.target}),!0})(e.target.value,e,n.event)&&w(e)},onKeyDown:function(e){var t,r=e.target,n=e.key,i=r.selectionStart,o=r.selectionEnd,s=r.value;if(void 0===s&&(s=""),"ArrowLeft"===n||"Backspace"===n?t=Math.max(i-1,0):"ArrowRight"===n?t=Math.min(i+1,s.length):"Delete"===n&&(t=i),void 0!==t&&i===o){var a=t;"ArrowLeft"===n||"ArrowRight"===n?a=V(s,t,"ArrowLeft"===n?"left":"right"):"Delete"!==n||j(s[t])?"Backspace"!==n||j(s[t])||(a=V(s,t,"left")):a=V(s,t,"right"),a!==t&&Q(r,a,s),e.isUnitTestRun&&Q(r,a,s),k(e)}else k(e)},onMouseUp:function(e){var t=e.target,r=t.selectionStart,n=t.selectionEnd,i=t.value;if(void 0===i&&(i=""),r===n){var o=V(i,r);o!==r&&Q(t,o,i)}O(e)},onFocus:function(e){e.persist&&e.persist();var t=e.target;F.current=t,q.current.focusTimeout=setTimeout((function(){var r=t.selectionStart,n=t.selectionEnd,i=t.value;void 0===i&&(i="");var o=V(i,r);o===r||0===r&&n===i.length||Q(t,o,i),E(e)}),0)},onBlur:function(e){F.current=null,clearTimeout(q.current.focusTimeout),clearTimeout(q.current.setCaretTimeout),I(e)}});if("text"===r)return c?i.createElement(i.Fragment,null,c(R,N)||null):i.createElement("span",Object.assign({},N,{ref:l}),R);if(u){var J=u;return i.createElement(J,Object.assign({},Z,{ref:l}))}return i.createElement("input",Object.assign({},Z,{ref:l}))}function O(e,t){var r=t.decimalScale,n=t.fixedDecimalScale,i=t.prefix;void 0===i&&(i="");var o=t.suffix;void 0===o&&(o="");var s=t.allowNegative;void 0===s&&(s=!0);var a=t.thousandsGroupStyle;if(void 0===a&&(a="thousand"),""===e||"-"===e)return e;var u=E(t),c=u.thousandSeparator,l=u.decimalSeparator,h=0!==r&&-1!==e.indexOf(".")||r&&n,p=f(e,s),g=p.beforeDecimal,m=p.afterDecimal,y=p.addNegation;return void 0!==r&&(m=d(m,r,!!n)),c&&(g=function(e,t,r){var n=function(e){switch(e){case"lakh":return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case"wan":return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}(r),i=e.search(/[1-9]/);return i=-1===i?e.length:i,e.substring(0,i)+e.substring(i,e.length).replace(n,"$1"+t)}(g,c,a)),i&&(g=i+g),o&&(m+=o),y&&(g="-"+g),g+(h&&l||"")+m}function E(e){var t=e.decimalSeparator;void 0===t&&(t=".");var r=e.thousandSeparator,n=e.allowedDecimalSeparators;return!0===r&&(r=","),n||(n=[t,"."]),{decimalSeparator:t,thousandSeparator:r,allowedDecimalSeparators:n}}function I(e,t,r){void 0===t&&(t=v(e));var n=r.allowNegative;void 0===n&&(n=!0);var i=r.prefix;void 0===i&&(i="");var o=r.suffix;void 0===o&&(o="");var s=r.decimalScale,a=t.from,u=t.to,c=u.start,d=u.end,h=E(r),p=h.allowedDecimalSeparators,g=h.decimalSeparator,m=e[d]===g;if(d-c==1&&-1!==p.indexOf(e[c])){var y=0===s?"":g;e=e.substring(0,c)+y+e.substring(c+1,e.length)}var w=!1;i.startsWith("-")?w=e.startsWith("--"):o.startsWith("-")&&e.length===o.length?w=!1:"-"===e[0]&&(w=!0),w&&(e=e.substring(1),c-=1,d-=1);var b=0;e.startsWith(i)?b+=i.length:ce.length-o.length&&(_=d),e=e.substring(0,_),e=function(e,t){void 0===e&&(e="");var r=new RegExp("(-)"),n=new RegExp("(-)(.)*(-)"),i=r.test(e),o=n.test(e);return e=e.replace(/-/g,""),i&&!o&&t&&(e="-"+e),e}(w?"-"+e:e,n),e=(e.match(function(e,t){return new RegExp("(^-)|[0-9]|"+l(e),"g")}(g))||[]).join("");var S=e.indexOf(g),M=f(e=e.replace(new RegExp(l(g),"g"),(function(e,t){return t===S?".":""})),n),k=M.beforeDecimal,O=M.afterDecimal,I=M.addNegation;return u.end-u.start0&&t[l-1]!==i;)l--;f="left"}else{for(var d=t.length;l{"use strict";r.r(t),r.d(t,{Manager:()=>s,Popper:()=>Ie,Reference:()=>je,usePopper:()=>Me});var n=r(758),i=n.createContext(),o=n.createContext();function s(e){var t=e.children,r=n.useState(null),s=r[0],a=r[1],u=n.useRef(!1);n.useEffect((function(){return function(){u.current=!0}}),[]);var c=n.useCallback((function(e){u.current||a(e)}),[]);return n.createElement(i.Provider,{value:s},n.createElement(o.Provider,{value:c},t))}var a=function(e){return Array.isArray(e)?e[0]:e},u=function(e){if("function"==typeof e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0&&w(n.width)/e.offsetWidth||1,o=e.offsetHeight>0&&w(n.height)/e.offsetHeight||1);var s=(p(e)?h(e):window).visualViewport,a=!_()&&r,u=(n.left+(a&&s?s.offsetLeft:0))/i,c=(n.top+(a&&s?s.offsetTop:0))/o,l=n.width/i,f=n.height/o;return{width:l,height:f,top:c,right:u+l,bottom:c+f,left:u,x:u,y:c}}function S(e){var t=h(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function M(e){return e?(e.nodeName||"").toLowerCase():null}function k(e){return((p(e)?e.ownerDocument:e.document)||window.document).documentElement}function O(e){return x(k(e)).left+S(e).scrollLeft}function E(e){return h(e).getComputedStyle(e)}function I(e){var t=E(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function A(e,t,r){void 0===r&&(r=!1);var n,i,o=g(t),s=g(t)&&function(e){var t=e.getBoundingClientRect(),r=w(t.width)/e.offsetWidth||1,n=w(t.height)/e.offsetHeight||1;return 1!==r||1!==n}(t),a=k(t),u=x(e,s,r),c={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(o||!o&&!r)&&(("body"!==M(t)||I(a))&&(c=(n=t)!==h(n)&&g(n)?{scrollLeft:(i=n).scrollLeft,scrollTop:i.scrollTop}:S(n)),g(t)?((l=x(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=O(a))),{x:u.left+c.scrollLeft-l.x,y:u.top+c.scrollTop-l.y,width:u.width,height:u.height}}function C(e){var t=x(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function j(e){return"html"===M(e)?e:e.assignedSlot||e.parentNode||(m(e)?e.host:null)||k(e)}function N(e){return["html","body","#document"].indexOf(M(e))>=0?e.ownerDocument.body:g(e)&&I(e)?e:N(j(e))}function T(e,t){var r;void 0===t&&(t=[]);var n=N(e),i=n===(null==(r=e.ownerDocument)?void 0:r.body),o=h(n),s=i?[o].concat(o.visualViewport||[],I(n)?n:[]):n,a=t.concat(s);return i?a:a.concat(T(j(s)))}function P(e){return["table","td","th"].indexOf(M(e))>=0}function R(e){return g(e)&&"fixed"!==E(e).position?e.offsetParent:null}function D(e){for(var t=h(e),r=R(e);r&&P(r)&&"static"===E(r).position;)r=R(r);return r&&("html"===M(r)||"body"===M(r)&&"static"===E(r).position)?t:r||function(e){var t=/firefox/i.test(b());if(/Trident/i.test(b())&&g(e)&&"fixed"===E(e).position)return null;var r=j(e);for(m(r)&&(r=r.host);g(r)&&["html","body"].indexOf(M(r))<0;){var n=E(r);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return r;r=r.parentNode}return null}(e)||t}var L="top",B="bottom",z="right",U="left",W="auto",F=[L,B,z,U],q="start",H="end",K="viewport",Q="popper",V=F.reduce((function(e,t){return e.concat([t+"-"+q,t+"-"+H])}),[]),$=[].concat(F,[W]).reduce((function(e,t){return e.concat([t,t+"-"+q,t+"-"+H])}),[]),Y=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function G(e){var t=new Map,r=new Set,n=[];function i(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var n=t.get(e);n&&i(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||i(e)})),n}var Z={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),r=0;r=0?"x":"y"}function ie(e){var t,r=e.reference,n=e.element,i=e.placement,o=i?te(i):null,s=i?re(i):null,a=r.x+r.width/2-n.width/2,u=r.y+r.height/2-n.height/2;switch(o){case L:t={x:a,y:r.y-n.height};break;case B:t={x:a,y:r.y+r.height};break;case z:t={x:r.x+r.width,y:u};break;case U:t={x:r.x-n.width,y:u};break;default:t={x:r.x,y:r.y}}var c=o?ne(o):null;if(null!=c){var l="y"===c?"height":"width";switch(s){case q:t[c]=t[c]-(r[l]/2-n[l]/2);break;case H:t[c]=t[c]+(r[l]/2-n[l]/2)}}return t}var oe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function se(e){var t,r=e.popper,n=e.popperRect,i=e.placement,o=e.variation,s=e.offsets,a=e.position,u=e.gpuAcceleration,c=e.adaptive,l=e.roundOffsets,f=e.isFixed,d=s.x,p=void 0===d?0:d,g=s.y,m=void 0===g?0:g,y="function"==typeof l?l({x:p,y:m}):{x:p,y:m};p=y.x,m=y.y;var v=s.hasOwnProperty("x"),b=s.hasOwnProperty("y"),_=U,x=L,S=window;if(c){var M=D(r),O="clientHeight",I="clientWidth";M===h(r)&&"static"!==E(M=k(r)).position&&"absolute"===a&&(O="scrollHeight",I="scrollWidth"),(i===L||(i===U||i===z)&&o===H)&&(x=B,m-=(f&&M===S&&S.visualViewport?S.visualViewport.height:M[O])-n.height,m*=u?1:-1),i!==U&&(i!==L&&i!==B||o!==H)||(_=z,p-=(f&&M===S&&S.visualViewport?S.visualViewport.width:M[I])-n.width,p*=u?1:-1)}var A,C=Object.assign({position:a},c&&oe),j=!0===l?function(e,t){var r=e.x,n=e.y,i=t.devicePixelRatio||1;return{x:w(r*i)/i||0,y:w(n*i)/i||0}}({x:p,y:m},h(r)):{x:p,y:m};return p=j.x,m=j.y,u?Object.assign({},C,((A={})[x]=b?"0":"",A[_]=v?"0":"",A.transform=(S.devicePixelRatio||1)<=1?"translate("+p+"px, "+m+"px)":"translate3d("+p+"px, "+m+"px, 0)",A)):Object.assign({},C,((t={})[x]=b?m+"px":"",t[_]=v?p+"px":"",t.transform="",t))}var ae={left:"right",right:"left",bottom:"top",top:"bottom"};function ue(e){return e.replace(/left|right|bottom|top/g,(function(e){return ae[e]}))}var ce={start:"end",end:"start"};function le(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function fe(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&m(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function de(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function he(e,t,r){return t===K?de(function(e,t){var r=h(e),n=k(e),i=r.visualViewport,o=n.clientWidth,s=n.clientHeight,a=0,u=0;if(i){o=i.width,s=i.height;var c=_();(c||!c&&"fixed"===t)&&(a=i.offsetLeft,u=i.offsetTop)}return{width:o,height:s,x:a+O(e),y:u}}(e,r)):p(t)?function(e,t){var r=x(e,!1,"fixed"===t);return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}(t,r):de(function(e){var t,r=k(e),n=S(e),i=null==(t=e.ownerDocument)?void 0:t.body,o=y(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=y(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),a=-n.scrollLeft+O(e),u=-n.scrollTop;return"rtl"===E(i||r).direction&&(a+=y(r.clientWidth,i?i.clientWidth:0)-o),{width:o,height:s,x:a,y:u}}(k(e)))}function pe(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function ge(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}function me(e,t){void 0===t&&(t={});var r=t,n=r.placement,i=void 0===n?e.placement:n,o=r.strategy,s=void 0===o?e.strategy:o,a=r.boundary,u=void 0===a?"clippingParents":a,c=r.rootBoundary,l=void 0===c?K:c,f=r.elementContext,d=void 0===f?Q:f,h=r.altBoundary,m=void 0!==h&&h,w=r.padding,b=void 0===w?0:w,_=pe("number"!=typeof b?b:ge(b,F)),S=d===Q?"reference":Q,O=e.rects.popper,I=e.elements[m?S:d],A=function(e,t,r,n){var i="clippingParents"===t?function(e){var t=T(j(e)),r=["absolute","fixed"].indexOf(E(e).position)>=0&&g(e)?D(e):e;return p(r)?t.filter((function(e){return p(e)&&fe(e,r)&&"body"!==M(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),s=o[0],a=o.reduce((function(t,r){var i=he(e,r,n);return t.top=y(i.top,t.top),t.right=v(i.right,t.right),t.bottom=v(i.bottom,t.bottom),t.left=y(i.left,t.left),t}),he(e,s,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(p(I)?I:I.contextElement||k(e.elements.popper),u,l,s),C=x(e.elements.reference),N=ie({reference:C,element:O,strategy:"absolute",placement:i}),P=de(Object.assign({},O,N)),R=d===Q?P:C,U={top:A.top-R.top+_.top,bottom:R.bottom-A.bottom+_.bottom,left:A.left-R.left+_.left,right:R.right-A.right+_.right},W=e.modifiersData.offset;if(d===Q&&W){var q=W[i];Object.keys(U).forEach((function(e){var t=[z,B].indexOf(e)>=0?1:-1,r=[L,B].indexOf(e)>=0?"y":"x";U[e]+=q[r]*t}))}return U}function ye(e,t,r){return y(e,v(t,r))}function ve(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function we(e){return[L,z,B,U].some((function(t){return e[t]>=0}))}var be=X({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,o=void 0===i||i,s=n.resize,a=void 0===s||s,u=h(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",r.update,ee)})),a&&u.addEventListener("resize",r.update,ee),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",r.update,ee)})),a&&u.removeEventListener("resize",r.update,ee)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,r=e.name;t.modifiersData[r]=ie({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=void 0===n||n,o=r.adaptive,s=void 0===o||o,a=r.roundOffsets,u=void 0===a||a,c={placement:te(t.placement),variation:re(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,se(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,se(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},n=t.attributes[e]||{},i=t.elements[e];g(i)&&M(i)&&(Object.assign(i.style,r),Object.keys(n).forEach((function(e){var t=n[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});g(n)&&M(n)&&(Object.assign(n.style,o),Object.keys(i).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,n=e.name,i=r.offset,o=void 0===i?[0,0]:i,s=$.reduce((function(e,r){return e[r]=function(e,t,r){var n=te(e),i=[U,L].indexOf(n)>=0?-1:1,o="function"==typeof r?r(Object.assign({},t,{placement:e})):r,s=o[0],a=o[1];return s=s||0,a=(a||0)*i,[U,z].indexOf(n)>=0?{x:a,y:s}:{x:s,y:a}}(r,t.rects,o),e}),{}),a=s[t.placement],u=a.x,c=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[n]=s}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,o=void 0===i||i,s=r.altAxis,a=void 0===s||s,u=r.fallbackPlacements,c=r.padding,l=r.boundary,f=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,p=void 0===h||h,g=r.allowedAutoPlacements,m=t.options.placement,y=te(m),v=u||(y!==m&&p?function(e){if(te(e)===W)return[];var t=ue(e);return[le(e),t,le(t)]}(m):[ue(m)]),w=[m].concat(v).reduce((function(e,r){return e.concat(te(r)===W?function(e,t){void 0===t&&(t={});var r=t,n=r.placement,i=r.boundary,o=r.rootBoundary,s=r.padding,a=r.flipVariations,u=r.allowedAutoPlacements,c=void 0===u?$:u,l=re(n),f=l?a?V:V.filter((function(e){return re(e)===l})):F,d=f.filter((function(e){return c.indexOf(e)>=0}));0===d.length&&(d=f);var h=d.reduce((function(t,r){return t[r]=me(e,{placement:r,boundary:i,rootBoundary:o,padding:s})[te(r)],t}),{});return Object.keys(h).sort((function(e,t){return h[e]-h[t]}))}(t,{placement:r,boundary:l,rootBoundary:f,padding:c,flipVariations:p,allowedAutoPlacements:g}):r)}),[]),b=t.rects.reference,_=t.rects.popper,x=new Map,S=!0,M=w[0],k=0;k=0,C=A?"width":"height",j=me(t,{placement:O,boundary:l,rootBoundary:f,altBoundary:d,padding:c}),N=A?I?z:U:I?B:L;b[C]>_[C]&&(N=ue(N));var T=ue(N),P=[];if(o&&P.push(j[E]<=0),a&&P.push(j[N]<=0,j[T]<=0),P.every((function(e){return e}))){M=O,S=!1;break}x.set(O,P)}if(S)for(var R=function(e){var t=w.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return M=t,"break"},D=p?3:1;D>0&&"break"!==R(D);D--);t.placement!==M&&(t.modifiersData[n]._skip=!0,t.placement=M,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,o=void 0===i||i,s=r.altAxis,a=void 0!==s&&s,u=r.boundary,c=r.rootBoundary,l=r.altBoundary,f=r.padding,d=r.tether,h=void 0===d||d,p=r.tetherOffset,g=void 0===p?0:p,m=me(t,{boundary:u,rootBoundary:c,padding:f,altBoundary:l}),w=te(t.placement),b=re(t.placement),_=!b,x=ne(w),S="x"===x?"y":"x",M=t.modifiersData.popperOffsets,k=t.rects.reference,O=t.rects.popper,E="function"==typeof g?g(Object.assign({},t.rects,{placement:t.placement})):g,I="number"==typeof E?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,j={x:0,y:0};if(M){if(o){var N,T="y"===x?L:U,P="y"===x?B:z,R="y"===x?"height":"width",W=M[x],F=W+m[T],H=W-m[P],K=h?-O[R]/2:0,Q=b===q?k[R]:O[R],V=b===q?-O[R]:-k[R],$=t.elements.arrow,Y=h&&$?C($):{width:0,height:0},G=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Z=G[T],J=G[P],X=ye(0,k[R],Y[R]),ee=_?k[R]/2-K-X-Z-I.mainAxis:Q-X-Z-I.mainAxis,ie=_?-k[R]/2+K+X+J+I.mainAxis:V+X+J+I.mainAxis,oe=t.elements.arrow&&D(t.elements.arrow),se=oe?"y"===x?oe.clientTop||0:oe.clientLeft||0:0,ae=null!=(N=null==A?void 0:A[x])?N:0,ue=W+ie-ae,ce=ye(h?v(F,W+ee-ae-se):F,W,h?y(H,ue):H);M[x]=ce,j[x]=ce-W}if(a){var le,fe="x"===x?L:U,de="x"===x?B:z,he=M[S],pe="y"===S?"height":"width",ge=he+m[fe],ve=he-m[de],we=-1!==[L,U].indexOf(w),be=null!=(le=null==A?void 0:A[S])?le:0,_e=we?ge:he-k[pe]-O[pe]-be+I.altAxis,xe=we?he+k[pe]+O[pe]-be-I.altAxis:ve,Se=h&&we?function(e,t,r){var n=ye(e,t,r);return n>r?r:n}(_e,he,xe):ye(h?_e:ge,he,h?xe:ve);M[S]=Se,j[S]=Se-he}t.modifiersData[n]=j}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,n=e.name,i=e.options,o=r.elements.arrow,s=r.modifiersData.popperOffsets,a=te(r.placement),u=ne(a),c=[U,z].indexOf(a)>=0?"height":"width";if(o&&s){var l=function(e,t){return pe("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:ge(e,F))}(i.padding,r),f=C(o),d="y"===u?L:U,h="y"===u?B:z,p=r.rects.reference[c]+r.rects.reference[u]-s[u]-r.rects.popper[c],g=s[u]-r.rects.reference[u],m=D(o),y=m?"y"===u?m.clientHeight||0:m.clientWidth||0:0,v=p/2-g/2,w=l[d],b=y-f[c]-l[h],_=y/2-f[c]/2+v,x=ye(w,_,b),S=u;r.modifiersData[n]=((t={})[S]=x,t.centerOffset=x-_,t)}},effect:function(e){var t=e.state,r=e.options.element,n=void 0===r?"[data-popper-arrow]":r;null!=n&&("string"!=typeof n||(n=t.elements.popper.querySelector(n)))&&fe(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),u=ve(s,n),c=ve(a,i,o),l=we(u),f=we(c);t.modifiersData[r]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":f})}}]}),_e=r(4072),xe=r.n(_e),Se=[],Me=function(e,t,r){void 0===r&&(r={});var i=n.useRef(null),o={onFirstUpdate:r.onFirstUpdate,placement:r.placement||"bottom",strategy:r.strategy||"absolute",modifiers:r.modifiers||Se},s=n.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),a=s[0],u=s[1],c=n.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,r=Object.keys(t.elements);d.flushSync((function(){u({styles:l(r.map((function(e){return[e,t.styles[e]||{}]}))),attributes:l(r.map((function(e){return[e,t.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),h=n.useMemo((function(){var e={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[c,{name:"applyStyles",enabled:!1}])};return xe()(i.current,e)?i.current||e:(i.current=e,e)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,c]),p=n.useRef();return f((function(){p.current&&p.current.setOptions(h)}),[h]),f((function(){if(null!=e&&null!=t){var n=(r.createPopper||be)(e,t,h);return p.current=n,function(){n.destroy(),p.current=null}}}),[e,t,r.createPopper]),{state:p.current?p.current.state:null,styles:a.styles,attributes:a.attributes,update:p.current?p.current.update:null,forceUpdate:p.current?p.current.forceUpdate:null}},ke=function(){},Oe=function(){return Promise.resolve(null)},Ee=[];function Ie(e){var t=e.placement,r=void 0===t?"bottom":t,o=e.strategy,s=void 0===o?"absolute":o,u=e.modifiers,l=void 0===u?Ee:u,f=e.referenceElement,d=e.onFirstUpdate,h=e.innerRef,p=e.children,g=n.useContext(i),m=n.useState(null),y=m[0],v=m[1],w=n.useState(null),b=w[0],_=w[1];n.useEffect((function(){c(h,y)}),[h,y]);var x=n.useMemo((function(){return{placement:r,strategy:s,onFirstUpdate:d,modifiers:[].concat(l,[{name:"arrow",enabled:null!=b,options:{element:b}}])}}),[r,s,d,l,b]),S=Me(f||g,y,x),M=S.state,k=S.styles,O=S.forceUpdate,E=S.update,I=n.useMemo((function(){return{ref:v,style:k.popper,placement:M?M.placement:r,hasPopperEscaped:M&&M.modifiersData.hide?M.modifiersData.hide.hasPopperEscaped:null,isReferenceHidden:M&&M.modifiersData.hide?M.modifiersData.hide.isReferenceHidden:null,arrowProps:{style:k.arrow,ref:_},forceUpdate:O||ke,update:E||Oe}}),[v,_,r,M,k,E,O]);return a(p)(I)}var Ae=r(3730),Ce=r.n(Ae);function je(e){var t=e.children,r=e.innerRef,i=n.useContext(o),s=n.useCallback((function(e){c(r,e),u(i,e)}),[r,i]);return n.useEffect((function(){return function(){return c(r,null)}}),[]),n.useEffect((function(){Ce()(Boolean(i),"`Reference` should not be used outside of a `Manager` component.")}),[i]),a(t)({ref:s})}},8560:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5285).__importDefault(r(4223));t.default=function(e){return e.prototype?e:n.default(e)}},369:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var n=r(5285),i=n.__importStar(r(758)),o=n.__importDefault(r(8560)),s=i.createElement,a=function(e,t,r,i){var o;return s(e,t?n.__assign(((o={})[t]=i,o),r):n.__assign(n.__assign({},i),r))};t.divWrapper=function(e,t,r,n){return s("div",null,a(e,t,r,n))},t.default=function(e,t,r){void 0===r&&(r=a);var n=function(i,a,u){void 0===a&&(a=t),void 0===u&&(u=null);var c="string"==typeof i;if(c)return function(e){return n(e,i||t,a)};var l=function(t){return s(e,u,(function(e){return r(i,a,t,e)}))};return c?o.default(l):l};return n}},3830:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5285).__importDefault(r(1497)),i=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=i),function(r){return n.default(r,e.apply(void 0,t(r)))}}},7177:(e,t,r)=>{"use strict";var n=r(5285);n.__importDefault(r(1497)).default,n.__importDefault(r(369)).default,n.__importDefault(r(3830)).default},1497:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5285),i=r(758),o=parseInt(i.version.substr(0,i.version.indexOf(".")))>15;t.default=function(e,t){for(var r=[],s=2;s{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5285),i=n.__importStar(r(758));t.default=function(e){var t=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(r,t),r.prototype.render=function(){return e(this.props,this.context)},r}(i.Component);return t}},4412:(e,t,r)=>{"use strict";r.r(t),r.d(t,{createBreakpoint:()=>Te,createGlobalState:()=>_r,createMemo:()=>o,createReducer:()=>c,createReducerContext:()=>s,createStateContext:()=>l,ensuredForwardRef:()=>le,useAsync:()=>p,useAsyncFn:()=>h,useAsyncRetry:()=>g,useAudio:()=>w,useBattery:()=>I,useBeforeUnload:()=>A,useBoolean:()=>N,useClickAway:()=>P,useCookie:()=>L,useCopyToClipboard:()=>U,useCounter:()=>Q,useCss:()=>ee,useCustomCompareEffect:()=>te,useDebounce:()=>ne,useDeepCompareEffect:()=>ie,useDefault:()=>oe,useDrop:()=>se,useDropArea:()=>ae,useEffectOnce:()=>ue,useEnsuredForwardedRef:()=>ce,useError:()=>ge,useEvent:()=>pe,useFavicon:()=>me,useFirstMountState:()=>a,useFullscreen:()=>we,useGeolocation:()=>be,useGetSet:()=>H,useGetSetState:()=>_e,useHarmonicIntervalFn:()=>Me,useHash:()=>xr,useHover:()=>Oe,useHoverDirty:()=>Ee,useIdle:()=>Ae,useIntersection:()=>Ce,useInterval:()=>je,useIsomorphicLayoutEffect:()=>Z,useKey:()=>Ne,useKeyPress:()=>Pe,useKeyPressEvent:()=>Re,useLatest:()=>De,useLifecycles:()=>Le,useList:()=>Be,useLocalStorage:()=>ze,useLocation:()=>qe,useLockBodyScroll:()=>Ge,useLogger:()=>Je,useLongPress:()=>et,useMap:()=>tt,useMeasure:()=>mr,useMedia:()=>rt,useMediaDevices:()=>nt,useMediatedState:()=>it,useMethods:()=>ot,useMotion:()=>at,useMount:()=>ut,useMountedState:()=>d,useMouse:()=>ft,useMouseHovered:()=>ht,useMouseWheel:()=>pt,useMultiStateValidator:()=>dr,useNetworkState:()=>vt,useNumber:()=>wt,useObservable:()=>bt,useOrientation:()=>xt,usePageLeave:()=>St,usePermission:()=>Mt,usePinchZoom:()=>vr,usePrevious:()=>kt,usePreviousDistinct:()=>Et,usePromise:()=>It,useQueue:()=>At,useRaf:()=>Ct,useRafLoop:()=>jt,useRafState:()=>lt,useRendersCount:()=>wr,useScratch:()=>Pt,useScroll:()=>Rt,useScrollbarWidth:()=>fr,useScrolling:()=>Dt,useSearchParam:()=>Tt,useSessionStorage:()=>Lt,useSet:()=>br,useSetState:()=>m,useShallowCompareEffect:()=>Ut,useSize:()=>Ht,useSlider:()=>Kt,useSpeech:()=>Vt,useStartTyping:()=>$t,useStateList:()=>Gt,useStateValidator:()=>cr,useStateWithHistory:()=>Yt,useThrottle:()=>Zt,useThrottleFn:()=>Jt,useTimeout:()=>Xt,useTimeoutFn:()=>re,useTitle:()=>tr,useToggle:()=>j,useTween:()=>nr,useUnmount:()=>ct,useUnmountPromise:()=>or,useUpdate:()=>F,useUpdateEffect:()=>u,useUpsert:()=>sr,useVibrate:()=>ar,useVideo:()=>ur,useWindowScroll:()=>hr,useWindowSize:()=>pr});var n=r(758),i=r.t(n,2);const o=function(e){return function(){for(var t=[],r=0;re?h():!0!==t&&(i=setTimeout(n?function(){i=void 0}:h,void 0===n?e-d:e)))}return"boolean"!=typeof t&&(n=r,r=t,t=void 0),u.cancel=function(){a(),o=!0},u}(50,(function(){i&&a(!1),clearTimeout(t),t=setTimeout((function(){return a(!0)}),e)})),c=function(){document.hidden||u()},l=0;l=t[1]?1:-1}))}),[e]),s=o.reduce((function(e,t){var n=t[0],i=t[1];return r>=i?n:e}),o[0][0]);return s}},Pe=function(e){var t=(0,n.useState)([!1,null]),r=t[0],i=t[1];return Ne(e,(function(e){return i([!0,e])}),{event:"keydown"},[r]),Ne(e,(function(e){return i([!1,e])}),{event:"keyup"},[r]),r},Re=function(e,t,r,n){void 0===n&&(n=Pe);var i=n(e),o=i[0],s=i[1];u((function(){!o&&r?r(s):o&&t&&t(s)}),[o])},De=function(e){var t=(0,n.useRef)(e);return t.current=e,t},Le=function(e,t){(0,n.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])},Be=function(e){void 0===e&&(e=[]);var t=(0,n.useRef)(q(e)),r=F(),i=(0,n.useMemo)((function(){var n={set:function(e){t.current=q(e,t.current),r()},push:function(){for(var e=[],t=0;tn.length?n[e]=t:n.splice(e,0,t),n}))},update:function(e,t){i.set((function(r){return r.map((function(r){return e(r,t)?t:r}))}))},updateFirst:function(e,r){var n=t.current.findIndex((function(t){return e(t,r)}));n>=0&&i.updateAt(n,r)},upsert:function(e,r){var n=t.current.findIndex((function(t){return e(t,r)}));n>=0?i.updateAt(n,r):i.push(r)},sort:function(e){i.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){i.set((function(r){return r.slice().filter(e,t)}))},removeAt:function(e){i.set((function(t){var r=t.slice();return r.splice(e,1),r}))},clear:function(){i.set([])},reset:function(){i.set(q(e).slice())}};return n.remove=n.removeAt,n}),[]);return[t.current,i]},ze=function(e,t,r){if(!S)return[t,b,b];if(!e)throw new Error("useLocalStorage key may not be falsy");var i=r?r.raw?function(e){return e}:r.deserializer:JSON.parse,o=(0,n.useRef)((function(e){try{var n=r?r.raw?String:r.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?i(o):(t&&localStorage.setItem(e,n(t)),t)}catch(e){return t}})),s=(0,n.useState)((function(){return o.current(e)})),a=s[0],u=s[1];(0,n.useLayoutEffect)((function(){return u(o.current(e))}),[e]);var c=(0,n.useCallback)((function(t){try{var n="function"==typeof t?t(a):t;if(void 0===n)return;var o;o=r?r.raw?"string"==typeof n?n:JSON.stringify(n):r.serializer?r.serializer(n):JSON.stringify(n):JSON.stringify(n),localStorage.setItem(e,o),u(i(o))}catch(e){}}),[e,u]),l=(0,n.useCallback)((function(){try{localStorage.removeItem(e),u(void 0)}catch(e){}}),[e,u]);return[a,c,l]};var Ue=function(e){var t=window.history,r=t[e];t[e]=function(t){var n=r.apply(this,arguments),i=new Event(e.toLowerCase());return i.state=t,window.dispatchEvent(i),n}};S&&(Ue("pushState"),Ue("replaceState"));var We=function(e){var t=window.history,r=t.state,n=t.length,i=window.location;return{trigger:e,state:r,length:n,hash:i.hash,host:i.host,hostname:i.hostname,href:i.href,origin:i.origin,pathname:i.pathname,port:i.port,protocol:i.protocol,search:i.search}},Fe="function"==typeof Event;const qe=S&&Fe?function(){var e=(0,n.useState)(We("load")),t=e[0],r=e[1];return(0,n.useEffect)((function(){var e=function(){return r(We("popstate"))},t=function(){return r(We("pushstate"))},n=function(){return r(We("replacestate"))};return _(window,"popstate",e),_(window,"pushstate",t),_(window,"replacestate",n),function(){x(window,"popstate",e),x(window,"pushstate",t),x(window,"replacestate",n)}}),[]),t}:function(){return{trigger:"load",length:1}};function He(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?He(e.offsetParent):null}function Ke(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var Qe=S&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),Ve=new Map,$e="object"==typeof document?document:void 0,Ye=!1;const Ge=$e?function(e,t){void 0===e&&(e=!0);var r=(0,n.useRef)($e.body);t=t||r;var i=function(e){var t=Ve.get(e);t&&(1===t.counter?(Ve.delete(e),Qe?(e.ontouchmove=null,Ye&&(x(document,"touchmove",Ke),Ye=!1)):e.style.overflow=t.initialOverflow):Ve.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,n.useEffect)((function(){var r=He(t.current);r&&(e?function(e){var t=Ve.get(e);t?Ve.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(Ve.set(e,{counter:1,initialOverflow:e.style.overflow}),Qe?Ye||(_(document,"touchmove",Ke,{passive:!1}),Ye=!0):e.style.overflow="hidden")}(r):i(r))}),[e,t.current]),(0,n.useEffect)((function(){var e=He(t.current);if(e)return function(){i(e)}}),[])}:function(e,t){void 0===e&&(e=!0)};var Ze=r(5640);const Je=function(e){for(var t=[],r=1;r1?u=1:u<0&&(u=0),a&&(u=1-u),c({value:u}),(t.onScrub||b)(u)}}))};return _(e.current,"mousedown",f),_(e.current,"touchstart",h),function(){x(e.current,"mousedown",f),x(e.current,"touchstart",h)}}}),[e,t.vertical]),u};var Qt;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(Qt||(Qt={}));const Vt=function(e,t){var r=(0,n.useRef)(!1),i=(0,n.useState)((function(){var e=t.voice||{},r=e.lang,n=void 0===r?"default":r,i=e.name,o=void 0===i?"":i;return{isPlaying:!1,status:Qt[Qt.init],lang:t.lang||"default",voiceInfo:{lang:n,name:o},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),o=i[0],s=i[1],a=(0,n.useCallback)((function(){r.current&&s((function(e){return(0,f.__assign)((0,f.__assign)({},e),{isPlaying:!0,status:Qt[Qt.play]})}))}),[]),u=(0,n.useCallback)((function(){r.current&&s((function(e){return(0,f.__assign)((0,f.__assign)({},e),{isPlaying:!1,status:Qt[Qt.pause]})}))}),[]),c=(0,n.useCallback)((function(){r.current&&s((function(e){return(0,f.__assign)((0,f.__assign)({},e),{isPlaying:!1,status:Qt[Qt.end]})}))}),[]);return(0,n.useEffect)((function(){r.current=!0;var n=new SpeechSynthesisUtterance(e);return t.lang&&(n.lang=t.lang),t.voice&&(n.voice=t.voice),n.rate=t.rate||1,n.pitch=t.pitch||1,n.volume=t.volume||1,n.onstart=a,n.onpause=u,n.onresume=a,n.onend=c,window.speechSynthesis.speak(n),function(){r.current=!1}}),[]),o},$t=function(e){Z((function(){var t=function(t){var r,n,i,o,s;!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&(n=(r=t).keyCode,i=r.metaKey,o=r.ctrlKey,s=r.altKey,!(i||o||s)&&(n>=48&&n<=57||n>=65&&n<=90))&&e(t)};return _(document,"keydown",t),function(){x(document,"keydown",t)}}),[])};function Yt(e,t,r){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var i=a(),o=(0,n.useState)(e),s=o[0],u=o[1],c=(0,n.useRef)(null!=r?r:[]),l=(0,n.useRef)(0);return i&&(c.current.length?(c.current[c.current.length-1]!==e&&c.current.push(e),c.current.length>t&&(c.current=c.current.slice(c.current.length-t))):c.current.push(e),l.current=c.current.length&&c.current.length-1),[s,(0,n.useCallback)((function(e){u((function(r){return(e=q(e,r))!==r&&(l.currentt&&(c.current=c.current.slice(c.current.length-t))),e}))}),[s,t]),(0,n.useMemo)((function(){return{history:c.current,position:l.current,capacity:t,back:function(e){void 0===e&&(e=1),l.current&&u((function(){return l.current-=Math.min(e,l.current),c.current[l.current]}))},forward:function(e){void 0===e&&(e=1),l.current!==c.current.length-1&&u((function(){return l.current=Math.min(l.current+e,c.current.length-1),c.current[l.current]}))},go:function(e){e!==l.current&&u((function(){return l.current=e<0?Math.max(c.current.length+e,0):Math.min(c.current.length-1,e),c.current[l.current]}))}}}),[s])]}function Gt(e){void 0===e&&(e=[]);var t=d(),r=F(),i=(0,n.useRef)(0);u((function(){e.length<=i.current&&(i.current=e.length-1,r())}),[e.length]);var o=(0,n.useMemo)((function(){return{next:function(){return o.setStateAt(i.current+1)},prev:function(){return o.setStateAt(i.current-1)},setStateAt:function(n){t()&&e.length&&n!==i.current&&(i.current=n>=0?n%e.length:e.length+n%e.length,r())},setState:function(n){if(t()){var o=e.length?e.indexOf(n):-1;if(-1===o)throw new Error("State '"+n+"' is not a valid state (does not exist in state list)");i.current=o,r()}}}}),[e]);return(0,f.__assign)({state:e[i.current],currentIndex:i.current,isFirst:0===i.current,isLast:i.current===e.length-1},o)}const Zt=function(e,t){void 0===t&&(t=200);var r=(0,n.useState)(e),i=r[0],o=r[1],s=(0,n.useRef)(),a=(0,n.useRef)(null),u=(0,n.useRef)(0);return(0,n.useEffect)((function(){if(s.current)a.current=e,u.current=!0;else{o(e);var r=function(){u.current?(u.current=!1,o(a.current),s.current=setTimeout(r,t)):s.current=void 0};s.current=setTimeout(r,t)}}),[e]),ct((function(){s.current&&clearTimeout(s.current)})),i},Jt=function(e,t,r){void 0===t&&(t=200);var i=(0,n.useState)(null),o=i[0],s=i[1],a=(0,n.useRef)(),u=(0,n.useRef)();return(0,n.useEffect)((function(){if(a.current)u.current=r;else{s(e.apply(void 0,r));var n=function(){u.current?(s(e.apply(void 0,u.current)),u.current=void 0,a.current=setTimeout(n,t)):a.current=void 0};a.current=setTimeout(n,t)}}),r),ct((function(){a.current&&clearTimeout(a.current)})),o};function Xt(e){return void 0===e&&(e=0),re(F(),e)}var er={restoreOnUnmount:!1};const tr="undefined"!=typeof document?function(e,t){void 0===t&&(t=er);var r=(0,n.useRef)(document.title);document.title!==e&&(document.title=e),(0,n.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=r.current}:void 0}),[])}:function(e){};var rr=r(1473);const nr=function(e,t,r){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===r&&(r=0),(0,rr.c[e])(Ct(t,r))};var ir=r(5640);const or=function(){var e=(0,n.useRef)(!1);return ue((function(){return function(){e.current=!0}})),(0,n.useMemo)((function(){return function(t,r){return new Promise((function(n,i){t.then((function(t){e.current||n(t)}),(function(t){e.current?r?r(t):ir.error("useUnmountPromise",t):i(t)}))}))}}),[])};function sr(e,t){void 0===t&&(t=[]);var r=Be(t),n=r[0],i=r[1];return[n,(0,f.__assign)((0,f.__assign)({},i),{upsert:function(t){i.upsert(e,t)}})]}const ar=M&&"vibrate"in navigator?function(e,t,r){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===r&&(r=!0),(0,n.useEffect)((function(){var n;if(e&&(navigator.vibrate(t),r)){var i=t instanceof Array?t.reduce((function(e,t){return e+t})):t;n=setInterval((function(){navigator.vibrate(t)}),i)}return function(){e&&(navigator.vibrate(0),r&&clearInterval(n))}}),[e])}:b,ur=v("video");function cr(e,t,r){void 0===r&&(r=[void 0]);var i=(0,n.useRef)(t),o=(0,n.useRef)(e);i.current=t,o.current=e;var s=(0,n.useState)(r),a=s[0],u=s[1],c=(0,n.useCallback)((function(){i.current.length>=2?i.current(o.current,u):u(i.current(o.current))}),[u]);return(0,n.useEffect)((function(){c()}),[e]),[a,c]}var lr=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof lr.__cache)return lr.__cache;var t=document.createElement("div"),r=t.style;r.display="block",r.position="absolute",r.width="100px",r.height="100px",r.left="-999px",r.top="-999px",r.overflow="scroll",document.body.insertBefore(t,null);var n=t.clientWidth;if(0!==n)return lr.__cache=100-n,document.body.removeChild(t),lr.__cache;document.body.removeChild(t)}};function fr(){var e=(0,n.useState)(lr()),t=e[0],r=e[1];return(0,n.useEffect)((function(){if(void 0===t){var e=requestAnimationFrame((function(){r(lr())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function dr(e,t,r){if(void 0===r&&(r=[void 0]),"object"!=typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var i=(0,n.useRef)(t),o=(0,n.useRef)(e);i.current=t,o.current=e;var s=(0,n.useState)(r),a=s[0],u=s[1],c=(0,n.useCallback)((function(){i.current.length>=2?i.current(o.current,u):u(i.current(o.current))}),[u]);return(0,n.useEffect)((function(){c()}),Object.values(e)),[a,c]}const hr=function(){var e=lt((function(){return{x:S?window.pageXOffset:0,y:S?window.pageYOffset:0}})),t=e[0],r=e[1];return(0,n.useEffect)((function(){var e=function(){r((function(e){var t=window.pageXOffset,r=window.pageYOffset;return e.x!==t||e.y!==r?{x:t,y:r}:e}))};return e(),_(window,"scroll",e,{capture:!1,passive:!0}),function(){x(window,"scroll",e)}}),[]),t},pr=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var r=lt({width:S?window.innerWidth:e,height:S?window.innerHeight:t}),i=r[0],o=r[1];return(0,n.useEffect)((function(){if(S){var e=function(){o({width:window.innerWidth,height:window.innerHeight})};return _(window,"resize",e),function(){x(window,"resize",e)}}}),[]),i};var gr={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const mr=S&&void 0!==window.ResizeObserver?function(){var e=(0,n.useState)(null),t=e[0],r=e[1],i=(0,n.useState)(gr),o=i[0],s=i[1],a=(0,n.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,r=t.x,n=t.y,i=t.width,o=t.height,a=t.top,u=t.left,c=t.bottom,l=t.right;s({x:r,y:n,width:i,height:o,top:a,left:u,bottom:c,right:l})}}))}),[]);return Z((function(){if(t)return a.observe(t),function(){a.disconnect()}}),[t]),[r,o]}:function(){return[b,gr]};var yr;!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(yr||(yr={}));const vr=function(e){var t=(0,n.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),r=(0,n.useState)(),i=r[0],o=r[1],s=function(e){for(var r=0;r0&&(n>t.prevDiff&&o([yr.ZOOMING_IN,n]),n{"use strict";r.r(t),r.d(t,{default:()=>g});var n=r(758),i=function(){function e(e,t){for(var r=0;r div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',o=r.head||r.getElementsByTagName("head")[0],s=r.createElement("style");s.id="detectElementResize",s.type="text/css",null!=e&&s.setAttribute("nonce",e),s.styleSheet?s.styleSheet.cssText=n:s.appendChild(r.createTextNode(n)),o.appendChild(s)}}(c),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=c.createElement("div")).className="resize-triggers";var h=c.createElement("div");h.className="expand-trigger",h.appendChild(c.createElement("div"));var p=c.createElement("div");p.className="contract-trigger",o.__resizeTriggers__.appendChild(h),o.__resizeTriggers__.appendChild(p),o.appendChild(o.__resizeTriggers__),s(o),o.addEventListener("scroll",l,!0),n&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===r&&s(o)},o.__resizeTriggers__.addEventListener(n,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(u)}},removeResizeListener:function(e,t){if(f)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",l,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(n,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(e){}}}}}(e),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var e=this.props,t=e.children,r=e.className,i=e.disableHeight,s=e.disableWidth,a=e.style,u=this.state,c=u.height,l=u.width,f={overflow:"visible"},d={},h=!1;return i||(0===c&&(h=!0),f.height=0,d.height=c),s||(0===l&&(h=!0),f.width=0,d.width=l),(0,n.createElement)("div",{className:r,ref:this._setRef,style:o({},f,a)},!h&&t(d))}}]),t}(n.PureComponent);p.defaultProps={onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}};const g=p},5173:(e,t,r)=>{"use strict";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;tL,FixedSizeList:()=>B,VariableSizeGrid:()=>A,VariableSizeList:()=>D,areEqual:()=>F,shouldComponentUpdate:()=>q});var a=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function u(e,t){if(e.length!==t.length)return!1;for(var r=0;r=0||(i[r]=e[r]);return i}var d="object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function h(e){cancelAnimationFrame(e.id)}function p(e,t){var r=d(),n={id:requestAnimationFrame((function i(){d()-r>=t?e.call(null):n.id=requestAnimationFrame(i)}))};return n}var g=-1;function m(e){if(void 0===e&&(e=!1),-1===g||e){var t=document.createElement("div"),r=t.style;r.width="50px",r.height="50px",r.overflow="scroll",document.body.appendChild(t),g=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return g}var y=null;function v(e){if(void 0===e&&(e=!1),null===y||e){var t=document.createElement("div"),r=t.style;r.width="50px",r.height="50px",r.overflow="scroll",r.direction="rtl";var n=document.createElement("div"),i=n.style;return i.width="100px",i.height="100px",t.appendChild(n),document.body.appendChild(t),t.scrollLeft>0?y="positive-descending":(t.scrollLeft=1,y=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),y}return y}var w=function(e){var t=e.columnIndex;return e.data,e.rowIndex+":"+t};function b(e){var t,r=e.getColumnOffset,o=e.getColumnStartIndexForOffset,a=e.getColumnStopIndexForStartIndex,u=e.getColumnWidth,f=e.getEstimatedTotalHeight,d=e.getEstimatedTotalWidth,g=e.getOffsetForColumnAndAlignment,y=e.getOffsetForRowAndAlignment,b=e.getRowHeight,x=e.getRowOffset,S=e.getRowStartIndexForOffset,M=e.getRowStopIndexForStartIndex,k=e.initInstanceProps,O=e.shouldResetStyleCacheOnItemSizeChange,E=e.validateProps;return(t=function(e){function t(t){var n;return(n=e.call(this,t)||this)._instanceProps=k(n.props,i(n)),n._resetIsScrollingTimeoutId=null,n._outerRef=void 0,n.state={instance:i(n),isScrolling:!1,horizontalScrollDirection:"forward",scrollLeft:"number"==typeof n.props.initialScrollLeft?n.props.initialScrollLeft:0,scrollTop:"number"==typeof n.props.initialScrollTop?n.props.initialScrollTop:0,scrollUpdateWasRequested:!1,verticalScrollDirection:"forward"},n._callOnItemsRendered=void 0,n._callOnItemsRendered=c((function(e,t,r,i,o,s,a,u){return n.props.onItemsRendered({overscanColumnStartIndex:e,overscanColumnStopIndex:t,overscanRowStartIndex:r,overscanRowStopIndex:i,visibleColumnStartIndex:o,visibleColumnStopIndex:s,visibleRowStartIndex:a,visibleRowStopIndex:u})})),n._callOnScroll=void 0,n._callOnScroll=c((function(e,t,r,i,o){return n.props.onScroll({horizontalScrollDirection:r,scrollLeft:e,scrollTop:t,verticalScrollDirection:i,scrollUpdateWasRequested:o})})),n._getItemStyle=void 0,n._getItemStyle=function(e,t){var i,o=n.props,s=o.columnWidth,a=o.direction,c=o.rowHeight,l=n._getItemStyleCache(O&&s,O&&a,O&&c),f=e+":"+t;if(l.hasOwnProperty(f))i=l[f];else{var d=r(n.props,t,n._instanceProps),h="rtl"===a;l[f]=i={position:"absolute",left:h?void 0:d,right:h?d:void 0,top:x(n.props,e,n._instanceProps),height:b(n.props,e,n._instanceProps),width:u(n.props,t,n._instanceProps)}}return i},n._getItemStyleCache=void 0,n._getItemStyleCache=c((function(e,t,r){return{}})),n._onScroll=function(e){var t=e.currentTarget,r=t.clientHeight,i=t.clientWidth,o=t.scrollLeft,s=t.scrollTop,a=t.scrollHeight,u=t.scrollWidth;n.setState((function(e){if(e.scrollLeft===o&&e.scrollTop===s)return null;var t=n.props.direction,c=o;if("rtl"===t)switch(v()){case"negative":c=-o;break;case"positive-descending":c=u-i-o}c=Math.max(0,Math.min(c,u-i));var l=Math.max(0,Math.min(s,a-r));return{isScrolling:!0,horizontalScrollDirection:e.scrollLeftc?v:0,_=w>a?v:0;this.scrollTo({scrollLeft:void 0!==n?g(this.props,n,r,h,this._instanceProps,_):h,scrollTop:void 0!==i?y(this.props,i,r,p,this._instanceProps,b):p})},I.componentDidMount=function(){var e=this.props,t=e.initialScrollLeft,r=e.initialScrollTop;if(null!=this._outerRef){var n=this._outerRef;"number"==typeof t&&(n.scrollLeft=t),"number"==typeof r&&(n.scrollTop=r)}this._callPropsCallbacks()},I.componentDidUpdate=function(){var e=this.props.direction,t=this.state,r=t.scrollLeft,n=t.scrollTop;if(t.scrollUpdateWasRequested&&null!=this._outerRef){var i=this._outerRef;if("rtl"===e)switch(v()){case"negative":i.scrollLeft=-r;break;case"positive-ascending":i.scrollLeft=r;break;default:var o=i.clientWidth,s=i.scrollWidth;i.scrollLeft=s-o-r}else i.scrollLeft=Math.max(0,r);i.scrollTop=Math.max(0,n)}this._callPropsCallbacks()},I.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&h(this._resetIsScrollingTimeoutId)},I.render=function(){var e=this.props,t=e.children,r=e.className,i=e.columnCount,o=e.direction,s=e.height,a=e.innerRef,u=e.innerElementType,c=e.innerTagName,h=e.itemData,p=e.itemKey,g=void 0===p?w:p,m=e.outerElementType,y=e.outerTagName,v=e.rowCount,b=e.style,_=e.useIsScrolling,x=e.width,S=this.state.isScrolling,M=this._getHorizontalRangeToRender(),k=M[0],O=M[1],E=this._getVerticalRangeToRender(),I=E[0],A=E[1],C=[];if(i>0&&v)for(var j=I;j<=A;j++)for(var N=k;N<=O;N++)C.push((0,l.createElement)(t,{columnIndex:N,data:h,isScrolling:_?S:void 0,key:g({columnIndex:N,data:h,rowIndex:j}),rowIndex:j,style:this._getItemStyle(j,N)}));var T=f(this.props,this._instanceProps),P=d(this.props,this._instanceProps);return(0,l.createElement)(m||y||"div",{className:r,onScroll:this._onScroll,ref:this._outerRefSetter,style:n({position:"relative",height:s,width:x,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},b)},(0,l.createElement)(u||c||"div",{children:C,ref:a,style:{height:T,pointerEvents:S?"none":void 0,width:P}}))},I._callPropsCallbacks=function(){var e=this.props,t=e.columnCount,r=e.onItemsRendered,n=e.onScroll,i=e.rowCount;if("function"==typeof r&&t>0&&i>0){var o=this._getHorizontalRangeToRender(),s=o[0],a=o[1],u=o[2],c=o[3],l=this._getVerticalRangeToRender(),f=l[0],d=l[1],h=l[2],p=l[3];this._callOnItemsRendered(s,a,f,d,u,c,h,p)}if("function"==typeof n){var g=this.state,m=g.horizontalScrollDirection,y=g.scrollLeft,v=g.scrollTop,w=g.scrollUpdateWasRequested,b=g.verticalScrollDirection;this._callOnScroll(y,v,m,b,w)}},I._getHorizontalRangeToRender=function(){var e=this.props,t=e.columnCount,r=e.overscanColumnCount,n=e.overscanColumnsCount,i=e.overscanCount,s=e.rowCount,u=this.state,c=u.horizontalScrollDirection,l=u.isScrolling,f=u.scrollLeft,d=r||n||i||1;if(0===t||0===s)return[0,0,0,0];var h=o(this.props,f,this._instanceProps),p=a(this.props,h,f,this._instanceProps),g=l&&"backward"!==c?1:Math.max(1,d),m=l&&"forward"!==c?1:Math.max(1,d);return[Math.max(0,h-g),Math.max(0,Math.min(t-1,p+m)),h,p]},I._getVerticalRangeToRender=function(){var e=this.props,t=e.columnCount,r=e.overscanCount,n=e.overscanRowCount,i=e.overscanRowsCount,o=e.rowCount,s=this.state,a=s.isScrolling,u=s.verticalScrollDirection,c=s.scrollTop,l=n||i||r||1;if(0===t||0===o)return[0,0,0,0];var f=S(this.props,c,this._instanceProps),d=M(this.props,f,c,this._instanceProps),h=a&&"backward"!==u?1:Math.max(1,l),p=a&&"forward"!==u?1:Math.max(1,l);return[Math.max(0,f-h),Math.max(0,Math.min(o-1,d+p)),f,d]},t}(l.PureComponent)).defaultProps={direction:"ltr",itemData:void 0,useIsScrolling:!1},t}var _=function(e,t){e.children,e.direction,e.height,e.innerTagName,e.outerTagName,e.overscanColumnsCount,e.overscanCount,e.overscanRowsCount,e.width,t.instance},x=function(e,t){var r=e.rowCount,n=t.rowMetadataMap,i=t.estimatedRowHeight,o=t.lastMeasuredRowIndex,s=0;if(o>=r&&(o=r-1),o>=0){var a=n[o];s=a.offset+a.size}return s+(r-o-1)*i},S=function(e,t){var r=e.columnCount,n=t.columnMetadataMap,i=t.estimatedColumnWidth,o=t.lastMeasuredColumnIndex,s=0;if(o>=r&&(o=r-1),o>=0){var a=n[o];s=a.offset+a.size}return s+(r-o-1)*i},M=function(e,t,r,n){var i,o,s;if("column"===e?(i=n.columnMetadataMap,o=t.columnWidth,s=n.lastMeasuredColumnIndex):(i=n.rowMetadataMap,o=t.rowHeight,s=n.lastMeasuredRowIndex),r>s){var a=0;if(s>=0){var u=i[s];a=u.offset+u.size}for(var c=s+1;c<=r;c++){var l=o(c);i[c]={offset:a,size:l},a+=l}"column"===e?n.lastMeasuredColumnIndex=r:n.lastMeasuredRowIndex=r}return i[r]},k=function(e,t,r,n){var i,o;return"column"===e?(i=r.columnMetadataMap,o=r.lastMeasuredColumnIndex):(i=r.rowMetadataMap,o=r.lastMeasuredRowIndex),(o>0?i[o].offset:0)>=n?O(e,t,r,o,0,n):E(e,t,r,Math.max(0,o),n)},O=function(e,t,r,n,i,o){for(;i<=n;){var s=i+Math.floor((n-i)/2),a=M(e,t,s,r).offset;if(a===o)return s;ao&&(n=s-1)}return i>0?i-1:0},E=function(e,t,r,n,i){for(var o="column"===e?t.columnCount:t.rowCount,s=1;n=f-a&&i<=l+a?"auto":"center"),n){case"start":return l;case"end":return f;case"center":return Math.round(f+(l-f)/2);default:return i>=f&&i<=l?i:f>l||ia.clientWidth?m():0:a.scrollHeight>a.clientHeight?m():0}this.scrollTo(u(this.props,e,t,o,this._instanceProps,s))},b.componentDidMount=function(){var e=this.props,t=e.direction,r=e.initialScrollOffset,n=e.layout;if("number"==typeof r&&null!=this._outerRef){var i=this._outerRef;"horizontal"===t||"horizontal"===n?i.scrollLeft=r:i.scrollTop=r}this._callPropsCallbacks()},b.componentDidUpdate=function(){var e=this.props,t=e.direction,r=e.layout,n=this.state,i=n.scrollOffset;if(n.scrollUpdateWasRequested&&null!=this._outerRef){var o=this._outerRef;if("horizontal"===t||"horizontal"===r)if("rtl"===t)switch(v()){case"negative":o.scrollLeft=-i;break;case"positive-ascending":o.scrollLeft=i;break;default:var s=o.clientWidth,a=o.scrollWidth;o.scrollLeft=a-s-i}else o.scrollLeft=i;else o.scrollTop=i}this._callPropsCallbacks()},b.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&h(this._resetIsScrollingTimeoutId)},b.render=function(){var e=this.props,t=e.children,r=e.className,i=e.direction,s=e.height,a=e.innerRef,u=e.innerElementType,c=e.innerTagName,f=e.itemCount,d=e.itemData,h=e.itemKey,p=void 0===h?C:h,g=e.layout,m=e.outerElementType,y=e.outerTagName,v=e.style,w=e.useIsScrolling,b=e.width,_=this.state.isScrolling,x="horizontal"===i||"horizontal"===g,S=x?this._onScrollHorizontal:this._onScrollVertical,M=this._getRangeToRender(),k=M[0],O=M[1],E=[];if(f>0)for(var I=k;I<=O;I++)E.push((0,l.createElement)(t,{data:d,key:p(I,d),index:I,isScrolling:w?_:void 0,style:this._getItemStyle(I)}));var A=o(this.props,this._instanceProps);return(0,l.createElement)(m||y||"div",{className:r,onScroll:S,ref:this._outerRefSetter,style:n({position:"relative",height:s,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:i},v)},(0,l.createElement)(u||c||"div",{children:E,ref:a,style:{height:x?"100%":A,pointerEvents:_?"none":void 0,width:x?A:"100%"}}))},b._callPropsCallbacks=function(){if("function"==typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],r=e[1],n=e[2],i=e[3];this._callOnItemsRendered(t,r,n,i)}if("function"==typeof this.props.onScroll){var o=this.state,s=o.scrollDirection,a=o.scrollOffset,u=o.scrollUpdateWasRequested;this._callOnScroll(s,a,u)}},b._getRangeToRender=function(){var e=this.props,t=e.itemCount,r=e.overscanCount,n=this.state,i=n.isScrolling,o=n.scrollDirection,s=n.scrollOffset;if(0===t)return[0,0,0,0];var a=f(this.props,s,this._instanceProps),u=d(this.props,a,s,this._instanceProps),c=i&&"backward"!==o?1:Math.max(1,r),l=i&&"forward"!==o?1:Math.max(1,r);return[Math.max(0,a-c),Math.max(0,Math.min(t-1,u+l)),a,u]},t}(l.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var N=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},T=function(e,t,r){var n=e.itemSize,i=r.itemMetadataMap,o=r.lastMeasuredIndex;if(t>o){var s=0;if(o>=0){var a=i[o];s=a.offset+a.size}for(var u=o+1;u<=t;u++){var c=n(u);i[u]={offset:s,size:c},s+=c}r.lastMeasuredIndex=t}return i[t]},P=function(e,t,r,n,i){for(;n<=r;){var o=n+Math.floor((r-n)/2),s=T(e,o,t).offset;if(s===i)return o;si&&(r=o-1)}return n>0?n-1:0},R=function(e,t){var r=e.itemCount,n=t.itemMetadataMap,i=t.estimatedItemSize,o=t.lastMeasuredIndex,s=0;if(o>=r&&(o=r-1),o>=0){var a=n[o];s=a.offset+a.size}return s+(r-o-1)*i},D=j({getItemOffset:function(e,t,r){return T(e,t,r).offset},getItemSize:function(e,t,r){return r.itemMetadataMap[t].size},getEstimatedTotalSize:R,getOffsetForIndexAndAlignment:function(e,t,r,n,i,o){var s=e.direction,a=e.height,u=e.layout,c=e.width,l="horizontal"===s||"horizontal"===u?c:a,f=T(e,t,i),d=R(e,i),h=Math.max(0,Math.min(d-l,f.offset)),p=Math.max(0,f.offset-l+f.size+o);switch("smart"===r&&(r=n>=p-l&&n<=h+l?"auto":"center"),r){case"start":return h;case"end":return p;case"center":return Math.round(p+(h-p)/2);default:return n>=p&&n<=h?n:n0?n[i].offset:0)>=r?P(e,t,i,0,r):function(e,t,r,n){for(var i=e.itemCount,o=1;r=f-u&&n<=l+u?"auto":"center"),r){case"start":return l;case"end":return f;case"center":var d=Math.round(f+(l-f)/2);return dc+Math.floor(u/2)?c:d;default:return n>=f&&n<=l?n:f>l||n=f-a&&n<=l+a?"auto":"center"),r){case"start":return l;case"end":return f;case"center":var d=Math.round(f+(l-f)/2);return dc+Math.floor(a/2)?c:d;default:return n>=f&&n<=l?n:f>l||n=g-d&&n<=p+d?"auto":"center"),r){case"start":return p;case"end":return g;case"center":var m=Math.round(g+(p-g)/2);return mh+Math.floor(d/2)?h:m;default:return n>=g&&n<=p?n:n{"use strict";var n=r(4686).Buffer,i=r(6579);t.A=void 0;var o=i(r(121)),s=i(r(3658)),a=i(r(5545)),u=i(r(2288)),c=i(r(3822)),l=i(r(7152)),f=i(r(2349)),d=i(r(3499)),h=r(5852);var p=function(e){(0,l.default)(y,e);var t,r,i,h,p,g,m=(p=y,g=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=(0,d.default)(p);if(g){var r=(0,d.default)(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return(0,f.default)(this,e)});function y(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ws://localhost:8080",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;(0,u.default)(this,y);var o=n.autoconnect,s=void 0===o||o,a=n.reconnect,c=void 0===a||a,l=n.reconnect_interval,f=void 0===l?1e3:l,d=n.max_reconnects,h=void 0===d?5:d,p=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);ir.current_reconnects||0===r.max_reconnects)&&(r.reconnect_timer_id=setTimeout((function(){return r._connect(e,t)}),r.reconnect_interval)))}))}}]),y}(h.EventEmitter);t.A=p},7886:(e,t,r)=>{"use strict";var n=r(6579);t.A=function(e,t){return new c(e,t)};var i=n(r(2288)),o=n(r(3822)),s=n(r(7152)),a=n(r(2349)),u=n(r(3499));var c=function(e){(0,s.default)(c,e);var t,r,n=(t=c,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,u.default)(t);if(r){var i=(0,u.default)(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return(0,a.default)(this,e)});function c(e,t,r){var o;return(0,i.default)(this,c),(o=n.call(this)).socket=new window.WebSocket(e,r),o.socket.onopen=function(){return o.emit("open")},o.socket.onmessage=function(e){return o.emit("message",e.data)},o.socket.onerror=function(e){return o.emit("error",e)},o.socket.onclose=function(e){o.emit("close",e.code,e.reason)},o}return(0,o.default)(c,[{key:"send",value:function(e,t,r){var n=r||t;try{this.socket.send(e),n()}catch(e){n(e)}}},{key:"close",value:function(e,t){this.socket.close(e,t)}},{key:"addEventListener",value:function(e,t,r){this.socket.addEventListener(e,t,r)}}]),c}(r(5852).EventEmitter)},6671:(e,t,r)=>{var n=r(4686),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},28:e=>{!function(){"use strict";var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=e.exports,n=function(){for(var e,r=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,i=r.length,o={};n{"use strict";function r(e,t,r){return t<=e&&e<=r}function n(e){if(void 0===e)return{};if(e===Object(e))return e;throw TypeError("Could not convert argument to dictionary")}function i(e){this.tokens=[].slice.call(e)}i.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.shift():-1},prepend:function(e){if(Array.isArray(e))for(var t=e;t.length;)this.tokens.unshift(t.pop());else this.tokens.unshift(e)},push:function(e){if(Array.isArray(e))for(var t=e;t.length;)this.tokens.push(t.shift());else this.tokens.push(e)}};var o=-1;function s(e,t){if(e)throw TypeError("Decoder error");return t||65533}var a="utf-8";function u(e,t){if(!(this instanceof u))return new u(e,t);if((e=void 0!==e?String(e).toLowerCase():a)!==a)throw new Error("Encoding not supported. Only utf-8 is supported");t=n(t),this._streaming=!1,this._BOMseen=!1,this._decoder=null,this._fatal=Boolean(t.fatal),this._ignoreBOM=Boolean(t.ignoreBOM),Object.defineProperty(this,"encoding",{value:"utf-8"}),Object.defineProperty(this,"fatal",{value:this._fatal}),Object.defineProperty(this,"ignoreBOM",{value:this._ignoreBOM})}function c(e,t){if(!(this instanceof c))return new c(e,t);if((e=void 0!==e?String(e).toLowerCase():a)!==a)throw new Error("Encoding not supported. Only utf-8 is supported");t=n(t),this._streaming=!1,this._encoder=null,this._options={fatal:Boolean(t.fatal)},Object.defineProperty(this,"encoding",{value:"utf-8"})}function l(e){var t=e.fatal,n=0,i=0,a=0,u=128,c=191;this.handler=function(e,l){if(-1===l&&0!==a)return a=0,s(t);if(-1===l)return o;if(0===a){if(r(l,0,127))return l;if(r(l,194,223))a=1,n=l-192;else if(r(l,224,239))224===l&&(u=160),237===l&&(c=159),a=2,n=l-224;else{if(!r(l,240,244))return s(t);240===l&&(u=144),244===l&&(c=143),a=3,n=l-240}return n<<=6*a,null}if(!r(l,u,c))return n=a=i=0,u=128,c=191,e.prepend(l),s(t);if(u=128,c=191,n+=l-128<<6*(a-(i+=1)),i!==a)return null;var f=n;return n=a=i=0,f}}function f(e){e.fatal,this.handler=function(e,t){if(-1===t)return o;if(r(t,0,127))return t;var n,i;r(t,128,2047)?(n=1,i=192):r(t,2048,65535)?(n=2,i=224):r(t,65536,1114111)&&(n=3,i=240);for(var s=[(t>>6*n)+i];n>0;){var a=t>>6*(n-1);s.push(128|63&a),n-=1}return s}}u.prototype={decode:function(e,t){var r;r="object"==typeof e&&e instanceof ArrayBuffer?new Uint8Array(e):"object"==typeof e&&"buffer"in e&&e.buffer instanceof ArrayBuffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(0),t=n(t),this._streaming||(this._decoder=new l({fatal:this._fatal}),this._BOMseen=!1),this._streaming=Boolean(t.stream);for(var s,a=new i(r),u=[];!a.endOfStream()&&(s=this._decoder.handler(a,a.read()))!==o;)null!==s&&(Array.isArray(s)?u.push.apply(u,s):u.push(s));if(!this._streaming){do{if((s=this._decoder.handler(a,a.read()))===o)break;null!==s&&(Array.isArray(s)?u.push.apply(u,s):u.push(s))}while(!a.endOfStream());this._decoder=null}return u.length&&(-1===["utf-8"].indexOf(this.encoding)||this._ignoreBOM||this._BOMseen||(65279===u[0]?(this._BOMseen=!0,u.shift()):this._BOMseen=!0)),function(e){for(var t="",r=0;r>10),56320+(1023&n)))}return t}(u)}},c.prototype={encode:function(e,t){e=e?String(e):"",t=n(t),this._streaming||(this._encoder=new f(this._options)),this._streaming=Boolean(t.stream);for(var r,s=[],a=new i(function(e){for(var t=String(e),r=t.length,n=0,i=[];n57343)i.push(o);else if(56320<=o&&o<=57343)i.push(65533);else if(55296<=o&&o<=56319)if(n===r-1)i.push(65533);else{var s=e.charCodeAt(n+1);if(56320<=s&&s<=57343){var a=1023&o,u=1023&s;i.push(65536+(a<<10)+u),n+=1}else i.push(65533)}n+=1}return i}(e));!a.endOfStream()&&(r=this._encoder.handler(a,a.read()))!==o;)Array.isArray(r)?s.push.apply(s,r):s.push(r);if(!this._streaming){for(;(r=this._encoder.handler(a,a.read()))!==o;)Array.isArray(r)?s.push.apply(s,r):s.push(r);this._encoder=null}return new Uint8Array(s)}},t.TextEncoder=c,t.TextDecoder=u},5664:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n{"use strict";t.c={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},1413:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=({width:e=24,height:t=24})=>(0,n.jsxs)("svg",{width:e,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("path",{d:"M13.8179 4.54512L13.6275 4.27845C12.8298 3.16176 11.1702 3.16176 10.3725 4.27845L10.1821 4.54512C9.76092 5.13471 9.05384 5.45043 8.33373 5.37041L7.48471 5.27608C6.21088 5.13454 5.13454 6.21088 5.27608 7.48471L5.37041 8.33373C5.45043 9.05384 5.13471 9.76092 4.54512 10.1821L4.27845 10.3725C3.16176 11.1702 3.16176 12.8298 4.27845 13.6275L4.54512 13.8179C5.13471 14.2391 5.45043 14.9462 5.37041 15.6663L5.27608 16.5153C5.13454 17.7891 6.21088 18.8655 7.48471 18.7239L8.33373 18.6296C9.05384 18.5496 9.76092 18.8653 10.1821 19.4549L10.3725 19.7215C11.1702 20.8382 12.8298 20.8382 13.6275 19.7215L13.8179 19.4549C14.2391 18.8653 14.9462 18.5496 15.6663 18.6296L16.5153 18.7239C17.7891 18.8655 18.8655 17.7891 18.7239 16.5153L18.6296 15.6663C18.5496 14.9462 18.8653 14.2391 19.4549 13.8179L19.7215 13.6275C20.8382 12.8298 20.8382 11.1702 19.7215 10.3725L19.4549 10.1821C18.8653 9.76092 18.5496 9.05384 18.6296 8.33373L18.7239 7.48471C18.8655 6.21088 17.7891 5.13454 16.5153 5.27608L15.6663 5.37041C14.9462 5.45043 14.2391 5.13471 13.8179 4.54512Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M9 12L10.8189 13.8189V13.8189C10.9189 13.9189 11.0811 13.9189 11.1811 13.8189V13.8189L15 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})},2874:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoinBalanceUSD=void 0;const i=r(6070),o=n(r(3432)),s=r(758),a=r(5418);t.CoinBalanceUSD=e=>{const{tokenInfo:t,amount:r,maxDecimals:n,prefix:u=""}=e,c=t.usdPrice||0,l=(0,s.useMemo)((()=>r&&(0,a.hasNumericValue)(r)?new o.default(r).mul(c):new o.default(0)),[r,c]);return(0,i.jsxs)(i.Fragment,{children:[u,"$",a.formatNumber.format(l,n||2)]})}},5892:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0});const s=r(6070),a=o(r(758)),u=r(8709),c=r(4911);t.default=e=>{const{data:t}=(0,c.useBalances)(),{connected:r}=(0,u.useWalletPassThrough)(),n=a.useMemo((()=>{if(!t)return"0";const r=t[e.mintAddress];return r?r.uiAmount.toString():"0"}),[t,e.mintAddress]);return(!e.hideZeroBalance||"0"!==n&&n)&&r?(0,s.jsx)("span",{translate:"no",children:n}):null}},6338:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CurrentUserBadge=void 0;const n=r(6070),i=r(8709),o=r(5418);t.CurrentUserBadge=()=>{var e;const{publicKey:t,wallet:r}=(0,i.useWalletPassThrough)();return r&&t?(0,n.jsxs)("div",{className:"flex items-center bg-interactive py-2 px-3 rounded-2xl h-7",children:[(0,n.jsx)("div",{className:"w-4 h-4 rounded-full bg-interactive dark:bg-white-10 flex justify-center items-center",style:{position:"relative"},children:(0,n.jsx)("img",{alt:"Wallet logo",width:16,height:16,src:null===(e=null==r?void 0:r.adapter)||void 0===e?void 0:e.icon})}),(0,n.jsx)("div",{className:"ml-2",children:(0,n.jsx)("div",{className:"text-xs text-primary-text",children:(0,o.shortenAddress)(`${t}`,2)})})]}):null}},3620:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.calculateRate=void 0;const a=r(6070),u=s(r(3432)),c=o(r(758)),l=r(5418),f=s(r(4112)),d=r(4250);t.calculateRate=({inAmount:e,inputDecimal:t,outAmount:r,outputDecimal:n},i)=>{const o=(0,l.fromLamports)(e,t),s=(0,l.fromLamports)(r,n),a=i?new u.default(s).div(o):new u.default(o).div(s);return Number.isNaN(a.toNumber())?new u.default(0):a};const h=({width:e=16,height:t=16})=>(0,a.jsx)("svg",{width:e,height:t,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)("path",{d:"M10.8573 8.18429L13.6323 5.95933L10.8573 3.73438V5.31937H3.32735V6.59937H10.8573V8.18429ZM5.14223 7.81429L2.36719 10.0393L5.14223 12.2642V10.6792H12.6722V9.39922H5.14223V7.81429Z",fill:"currentColor"})});t.default=({className:e,textClassName:r,loading:n=!1,fromTokenInfo:i,rateParams:o,toTokenInfo:s,reversible:u=!0})=>{const[p,g]=c.useState(null==u||u),m=c.useMemo((()=>(0,t.calculateRate)(o,p)),[p,o]),y=c.useCallback((e=>{e.stopPropagation(),g((e=>!e))}),[]);return(0,a.jsxs)("div",{className:(0,d.cn)(e,"flex cursor-pointer text-primary-text text-xs align-center"),onClick:y,children:[(0,a.jsx)("span",{className:(0,d.cn)(r,"max-w-full flex whitespace-nowrap"),children:p?(0,a.jsxs)(a.Fragment,{children:["1 ",i.symbol," ≈",(0,a.jsx)("div",{className:"flex ml-0.5",children:m.gt(1e-5)?`${l.formatNumber.format(m,6)} ${s.symbol}`:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.default,{value:m.toNumber(),maxSuffix:6})," ",s.symbol]})})]}):(0,a.jsxs)(a.Fragment,{children:["1 ",s.symbol," ≈",(0,a.jsx)("div",{className:"flex ml-0.5",children:m.gt(1e-5)?`${l.formatNumber.format(m,6)} ${i.symbol}`:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.default,{value:m.toNumber(),maxSuffix:6})," ",i.symbol]})})]})}),u?(0,a.jsx)("div",{className:"ml-2",children:(0,a.jsx)(h,{})}):null]})}},8107:function(e,t,r){"use strict";var n=r(5640),i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=r(6070),a=r(758),u=r(8633),c=o(r(5892)),l=o(r(9652)),f=o(r(3657)),d=r(3799),h=r(8709),p=o(r(7415)),g=o(r(2213)),m=r(5418),y=r(640),v=r(2874),w=o(r(5739)),b=o(r(8381)),_=o(r(3432)),x=r(4250),S=r(893),M=o(r(7279)),k=r(4918),O=r(4911),E=r(442),I=r(6741),A=({tokenInfo:e,onBalanceClick:t,title:r,pairSelectDisabled:n,onClickSelectPair:i,children:o,value:a})=>(0,s.jsxs)("div",{className:(0,x.cn)("border border-transparent bg-module rounded-xl transition-all","py-3 px-4 flex flex-col dark:text-primary-text gap-y-2","group focus-within:border-primary/50 focus-within:shadow-swap-input-dark rounded-xl"),children:[(0,s.jsxs)("div",{className:"flex justify-between items-center text-xs text-primary-text",children:[(0,s.jsx)("div",{children:r}),e&&(0,s.jsxs)("div",{className:(0,x.cn)("flex space-x-1 text-xs items-center text-primary-text/50 fill-current ",{"cursor-pointer":t}),onClick:e=>{null==t||t(e)},children:[(0,s.jsx)(g.default,{width:10,height:10}),(0,s.jsx)(c.default,{mintAddress:e.id,hideZeroBalance:!1}),(0,s.jsx)("span",{children:e.symbol})]})]}),(0,s.jsxs)("div",{className:"flex",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("button",{type:"button",className:(0,x.cn)("py-2 px-3 rounded-lg flex items-center bg-interactive text-primary-text",{"hover:bg-interactive/80":!n}),disabled:n,onClick:i,children:[(0,s.jsx)("div",{className:"h-5 w-5",children:(0,s.jsx)(f.default,{info:e,width:20,height:20})}),(0,s.jsx)("div",{className:"ml-4 mr-2 font-semibold",translate:"no",children:(0,s.jsx)("div",{className:"truncate",children:null==e?void 0:e.symbol})}),n?null:(0,s.jsx)("span",{className:"text-primary-text/25 fill-current",children:(0,s.jsx)(p.default,{})})]}),(0,s.jsx)("div",{className:"flex justify-between items-center h-[20px]",children:(null==e?void 0:e.id)&&(0,s.jsx)(M.default,{tokenAddress:e.id})})]}),(0,s.jsxs)("div",{className:"flex flex-col items-end justify-between w-full",children:[o,(0,s.jsx)("span",{className:"text-xs text-primary-text/50",children:e&&(0,s.jsx)(v.CoinBalanceUSD,{tokenInfo:e,amount:a})})]})]})]});t.default=({setSelectPairSelector:e})=>{const{publicKey:t,wallet:r}=(0,h.useWalletPassThrough)(),{data:o}=(0,O.useBalances)(),{form:c,setForm:f,fromTokenInfo:p,toTokenInfo:g,quoteResponseMeta:v,formProps:{fixedAmount:M,swapMode:C,fixedMint:j},loading:N,isToPairFocused:T,setTxStatus:P,setLastSwapResult:R}=(0,d.useSwapContext)(),{setScreen:D}=(0,k.useScreenState)(),{mutateAsync:L}=(0,E.useUltraSwapMutation)(),B=(0,a.useCallback)((()=>i(void 0,void 0,void 0,(function*(){if(!r||!r.adapter.publicKey||!v)return null;try{if(!p)throw new Error("Missing fromTokenInfo");if(!g)throw new Error("Missing toTokenInfo");yield L({quoteResponseMeta:v,fromTokenInfo:p,toTokenInfo:g,setTxStatus:P,setLastSwapResult:R})}catch(e){n.log("Swap error",e)}finally{D("Swapping")}}))),[r,v,L,p,g,P,R,D]),z=(0,a.useMemo)((()=>(null==p?void 0:p.id)===j),[j,null==p?void 0:p.id]),U=(0,a.useMemo)((()=>(null==g?void 0:g.id)===j),[j,null==g?void 0:g.id]),W=(0,a.useMemo)((()=>null==t?void 0:t.toString()),[t]),F=(0,a.useMemo)((()=>{if(!(null==p?void 0:p.id))return null;if(!o)return null;const e=o[p.id];return e?e.uiAmount.toString():null}),[o,null==p?void 0:p.id]),q=(0,a.useCallback)((e=>{e.preventDefault(),F&&((null==p?void 0:p.id)===y.WRAPPED_SOL_MINT.toBase58()?f((e=>Object.assign(Object.assign({},e),{fromValue:new _.default(F).gt(y.MINIMUM_SOL_BALANCE)?new _.default(F).minus(y.MINIMUM_SOL_BALANCE).toFixed(9):"0"}))):f((e=>Object.assign(Object.assign({},e),{fromValue:F}))))}),[F,null==p?void 0:p.id,f]),{inputAmountDisabled:H,outputAmountDisabled:K}=(0,a.useMemo)((()=>{const e={inputAmountDisabled:!0,outputAmountDisabled:!0};return M||(C===S.SwapMode.ExactIn?e.inputAmountDisabled=!1:(C===S.SwapMode.ExactOut||(e.inputAmountDisabled=!1),e.outputAmountDisabled=!1)),e}),[M,C]),Q=(0,a.useCallback)((()=>{z||e("fromMint")}),[z,e]),V=(0,a.useCallback)((()=>{U||e("toMint")}),[U,e]),$=(0,a.useMemo)((()=>","===m.detectedSeparator?".":","),[]),Y=(0,a.useCallback)((({floatValue:e})=>!e||e<=y.MAX_INPUT_LIMIT),[]),G=(0,a.useCallback)((e=>{window.Jupiter.enableWalletPassthrough&&window.Jupiter.onRequestConnectWallet?window.Jupiter.onRequestConnectWallet():D("Wallet")}),[D]);return(0,s.jsxs)("div",{className:"h-full flex flex-col items-center justify-center",children:[(0,s.jsx)("div",{className:"w-full mt-2 rounded-xl flex flex-col px-2",children:(0,s.jsxs)("div",{className:"flex-col",children:[(0,s.jsx)(A,{tokenInfo:p,onBalanceClick:e=>{T.current=!1,q(e)},title:"Selling",pairSelectDisabled:z,onClickSelectPair:Q,value:c.fromValue,children:(null==p?void 0:p.decimals)&&(0,s.jsx)(u.NumericFormat,{disabled:M||C===S.SwapMode.ExactOut,value:void 0===c.fromValue?"":c.fromValue,decimalScale:p.decimals,thousandSeparator:$,allowNegative:!1,valueIsNumericString:!0,inputMode:"decimal",onValueChange:({value:e})=>{""!==e?"."!==e?Number.isNaN(e)||f((t=>Object.assign(Object.assign({},t),{fromValue:e}))):f((e=>Object.assign(Object.assign({},e),{fromValue:"0."}))):f((e=>Object.assign(Object.assign({},e),{fromValue:"",toValue:""})))},placeholder:"0.00",className:(0,x.cn)("w-full h-[40px] bg-transparent text-primary-text text-right font-semibold text-xl placeholder:text-primary-text/50",{"cursor-not-allowed":H||C===S.SwapMode.ExactOut}),onKeyDown:()=>{T.current=!1},decimalSeparator:m.detectedSeparator,isAllowed:Y})}),(0,s.jsx)("div",{className:"relative z-10 -my-3 flex justify-center",children:(0,s.jsx)(b.default,{onClick:()=>{f((e=>Object.assign(Object.assign({},e),{fromValue:"",toValue:"",fromMint:e.toMint,toMint:e.fromMint})))},className:(0,x.cn)("transition-all")})}),(0,s.jsx)(A,{tokenInfo:g,title:"Buying",pairSelectDisabled:U,onClickSelectPair:V,value:c.toValue,children:(null==g?void 0:g.decimals)&&(0,s.jsx)(u.NumericFormat,{inputMode:"decimal",disabled:K||C===S.SwapMode.ExactIn,value:void 0===c.toValue?"":c.toValue,decimalScale:g.decimals,thousandSeparator:$,allowNegative:!1,valueIsNumericString:!0,onValueChange:({value:e})=>{""!==e?"."!==e?Number.isNaN(e)||f((t=>Object.assign(Object.assign({},t),{toValue:e}))):f((e=>Object.assign(Object.assign({},e),{toValue:"0."}))):f((e=>Object.assign(Object.assign({},e),{fromValue:"",toValue:""})))},className:(0,x.cn)("h-[40px] w-full bg-transparent text-primary-text text-right font-semibold text-lg placeholder:text-primary-text/50",{"cursor-not-allowed":K||C===S.SwapMode.ExactIn}),placeholder:C===S.SwapMode.ExactOut?"Enter desired amount":"0.00",decimalSeparator:m.detectedSeparator,isAllowed:Y,onKeyDown:e=>{e.metaKey||e.ctrlKey||"Meta"===e.key||"Control"===e.key||"Alt"===e.key||"Shift"===e.key||(T.current=!0)}})})]})}),(0,s.jsxs)("div",{className:"w-full px-2",children:[W?(0,s.jsx)(I.SubmitButton,{onSubmit:B}):(0,s.jsx)(l.default,{size:"lg",className:"w-full mt-4 bg-primary !text-uiv2-text/75",onClick:G,children:"Connect Wallet"}),v&&p&&g?(0,s.jsx)(w.default,{quoteResponse:v,fromTokenInfo:p,toTokenInfo:g,loading:N}):null]})]})}},635:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PAIR_ROW_HEIGHT=void 0;const a=r(758),u=r(6070),c=o(r(758)),l=s(r(3432)),f=r(640),d=r(1823),h=r(5418),p=s(r(3657)),g=s(r(6354)),m=s(r(5892)),y=s(r(1413)),v=r(1767),w=r(4911),b=r(2518),_=r(2124);t.PAIR_ROW_HEIGHT=72;const x=({mintAddress:e})=>{const{data:t}=(0,v.useLstApyFetcher)(),r=(0,c.useMemo)((()=>{if(!t)return;const r=t[e];return r&&(0,h.hasNumericValue)(r)?new l.default(r).mul(100).toDP(2).toString():void 0}),[t,e]);return r?(0,u.jsxs)("p",{className:"rounded-md text-xxs leading-none transition-all py-0.5 px-1 text-primary/50 border border-primary/50 font-semibold",children:["LST ",r?`${r}%`:""]}):null},S=({item:e})=>{var t,r;const{data:n}=(0,w.useBalances)(),i=(null===(t=null==n?void 0:n[e.id])||void 0===t?void 0:t.isFrozen)||!1,o=(0,d.checkIsToken2022)(e),s=null===(r=e.tags)||void 0===r?void 0:r.includes("lst");return(0,u.jsxs)("div",{className:"flex justify-end gap-x-1",children:[i&&(0,u.jsx)("p",{className:"border rounded-md text-xxs leading-none transition-all py-0.5 px-1 border-warning/50 text-warning/50",children:"Frozen"}),o&&(0,u.jsx)("p",{className:"rounded-md text-xxs leading-none transition-all py-0.5 px-1 bg-black/10 font-semibold text-primary-text/20",children:"Token2022"}),s&&(0,u.jsx)(x,{mintAddress:e.id})]},e.id)};t.default=e=>{var r;const{item:n,style:i,onSubmit:o,suppressCloseModal:s,showExplorer:v=!0,enableUnknownTokenWarning:x=!0}=e,M=(0,b.useQueryClient)(),k=c.default.useCallback((()=>{M.setQueryData([..._.ASSET_QUERY_KEY,n.id],[n]),o(n)}),[o,n,s,M]),{data:O}=(0,w.useBalances)(),E=null===(r=null==O?void 0:O[n.id])||void 0===r?void 0:r.uiAmount,I=E?new l.default(E).mul(n.usdPrice||0):void 0,A=I&&I.gte(.01)?`$${h.formatNumber.format(I,2)}`:"";return(0,u.jsx)("li",{className:"rounded cursor-pointer px-5 my-1 list-none flex w-full items-center bg-interactive hover:bg-interactive/80",style:Object.assign({maxHeight:t.PAIR_ROW_HEIGHT-4,height:t.PAIR_ROW_HEIGHT-4},i),onClick:k,translate:"no",children:(0,u.jsxs)("div",{className:"flex h-full w-full items-center space-x-4",children:[(0,u.jsx)("div",{className:"flex-shrink-0",children:(0,u.jsx)("div",{className:"bg-gray-200 rounded-full",children:(0,u.jsx)(p.default,{info:n,width:36,height:36,enableUnknownTokenWarning:x})})}),(0,u.jsx)("div",{className:"flex-1 min-w-0",children:(0,u.jsxs)("div",{className:"flex flex-col gap-y-px",children:[(0,u.jsxs)("div",{className:"flex items-center",children:[(0,u.jsx)("p",{className:"text-sm font-medium text-primary-text truncate",children:n.symbol}),(0,d.checkIsStrictOrVerified)(n)&&(0,u.jsx)("p",{className:"rounded-md text-xxs leading-none transition-all py-0.5 px-1 text-primary",children:(0,u.jsx)(y.default,{width:18,height:18})})]}),(0,u.jsx)("p",{className:"text-xs text-primary-text/50 dark:text-primary-text-35 truncate",children:n.id===f.WRAPPED_SOL_MINT.toBase58()?"Solana":n.name}),v?(0,u.jsx)("div",{className:"-ml-1 z-10 w-fit",onClick:e=>e.stopPropagation(),children:(0,u.jsx)(g.default,{tokenInfo:n})}):null]})}),(0,u.jsxs)("div",{className:"text-xs text-primary-text/50 text-right h-full flex flex-col justify-evenly",children:[(0,u.jsx)(m.default,{mintAddress:n.id,hideZeroBalance:!0}),A?(0,u.jsx)("p",{children:A}):null,(0,a.createElement)(S,Object.assign({},e,{key:n.id}))]})]})})}},1664:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PAIR_ROW_HEIGHT=void 0;const o=r(6070),s=r(758),a=i(r(9380)),u=r(5173),c=i(r(3288)),l=i(r(4470)),f=i(r(2889)),d=i(r(635)),h=r(4250),p=r(4911),g=r(258),m=r(5418);t.PAIR_ROW_HEIGHT=72;const y=(0,s.memo)((e=>{const{data:t,index:r,style:n}=e,i=t.searchResult[r];return(0,o.jsx)(d.default,{item:i,style:n,onSubmit:t.onSubmit},i.address)}),u.areEqual);t.default=({onSubmit:e,onClose:r})=>{const[i,d]=(0,s.useState)(""),{data:v={}}=(0,p.useBalances)(),{data:w=[]}=(0,g.useSearch)([]),{data:b=[],isLoading:_}=(0,g.useSearch)([i],{staleTime:3e5}),{data:x=[]}=(0,g.useSearch)([Object.keys(v).join(",")]),S=(0,s.useMemo)((()=>i?(0,m.sortByUserBalance)(b,v):(0,m.sortByUserBalance)([...x,...w],v)),[w,v,b,i,x]),M=(0,s.useCallback)((0,f.default)((e=>n(void 0,void 0,void 0,(function*(){d(e)}))),200),[w]),k=(0,s.useCallback)((e=>{d(""),M(e.target.value)}),[M]),O=(0,s.createRef)(),E=(0,s.createRef)();return(0,s.useEffect)((()=>{var e;return null===(e=E.current)||void 0===e?void 0:e.focus()}),[E]),(0,o.jsxs)("div",{className:"flex flex-col h-full w-full py-4 px-2 bg-black",children:[(0,o.jsxs)("div",{className:"flex w-full justify-between",children:[(0,o.jsx)("div",{className:"text-primary-text fill-current w-6 h-6 cursor-pointer",onClick:r,children:(0,o.jsx)(c.default,{width:24,height:24})}),(0,o.jsx)("div",{className:"text-primary-text",children:"Select Token"}),(0,o.jsx)("div",{className:" w-6 h-6"})]}),(0,o.jsxs)("div",{className:"flex px-5 mt-4 w-[98%] rounded-xl bg-module",style:{height:56,maxHeight:56},children:[(0,o.jsx)(l.default,{}),(0,o.jsx)("input",{autoComplete:"off",className:"w-full rounded-xl ml-4 truncate bg-transparent text-primary-text placeholder:text-primary-text/50",placeholder:"Search",onChange:e=>k(e),ref:E})]}),(0,o.jsxs)("div",{className:"mt-2",style:{flexGrow:1},children:[S&&S.length>0&&(0,o.jsx)(a.default,{children:({height:r,width:n})=>(0,o.jsx)(u.FixedSizeList,{ref:O,height:r,itemCount:S.length,itemSize:t.PAIR_ROW_HEIGHT,width:n-2,itemData:{searchResult:S,onSubmit:e},className:(0,h.cn)("overflow-y-scroll mr-1 min-h-[12rem] px-5 webkit-scrollbar"),children:y})}),_?(0,o.jsx)("div",{className:"mt-4 mb-4 text-center text-primary-text/50",children:(0,o.jsx)("span",{children:"Loading..."})}):S&&0===S.length?(0,o.jsx)("div",{className:"mt-4 mb-4 text-center text-primary-text/50",children:(0,o.jsx)("span",{children:"No tokens found"})}):(0,o.jsx)(o.Fragment,{})]})]})}},770:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=r(758),s=r(3799),a=n(r(1192)),u=r(5185),c=r(1123),l=r(4911);t.default=()=>{const{refresh:e,enableWalletPassthrough:t}=(0,s.useSwapContext)(),{refetch:r}=(0,l.useBalances)(),{logoUri:n,name:f}=(0,c.useBranding)(),d=(0,o.useCallback)((()=>{r(),e()}),[r,e]);return(0,i.jsx)("div",{className:"mt-2 h-7 pl-3 pr-2",children:(0,i.jsxs)("div",{className:"w-full flex items-center justify-between ",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsx)("img",{src:n,alt:"Plugin Branding",className:"w-6 h-6"}),(0,i.jsx)("span",{className:"font-bold text-sm text-primary-text",children:f})]}),(0,i.jsxs)("div",{className:"flex space-x-1 items-center",children:[(0,i.jsx)("button",{type:"button",className:"p-2 h-7 w-7 flex items-center justify-center rounded-full bg-interactive text-primary-text fill-current",onClick:d,children:(0,i.jsx)(a.default,{})}),!t&&(0,i.jsx)(u.WalletButton,{})]})]})})}},9652:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=n(r(758)),s=r(4250),a=o.default.forwardRef((({onClick:e,disabled:t,children:r,className:n="",size:o="md"},a)=>{const u="sm"===o?"px-4 py-2.5 text-xs":"md"===o?"px-4 py-3 text-sm font-semibold":"lg"===o?"p-5 text-md font-semibold":void 0;return(0,i.jsx)("button",{type:"button",ref:a,className:(0,s.cn)("rounded-xl",{relative:!0,"opacity-50 cursor-not-allowed":t,[n]:!0}),disabled:t,onClick:e,children:(0,i.jsx)("div",{className:`${u} h-full w-full leading-none`,children:r})})}));a.displayName="JupButton",t.default=a},7279:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=r(2518),s=r(5587),a=r(1516),u=n(r(8045)),c=r(4250),l=r(758),f=n(r(2094)),d=n(r(2182)),h=e=>(0,i.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",height:"1em",width:"1em",viewBox:"0 0 24 24"},e,{children:(0,i.jsxs)("g",{fill:"none",children:[(0,i.jsx)("path",{stroke:"currentColor",strokeWidth:"1.5",d:"M3 10.417c0-3.198 0-4.797.378-5.335c.377-.537 1.88-1.052 4.887-2.081l.573-.196C10.405 2.268 11.188 2 12 2s1.595.268 3.162.805l.573.196c3.007 1.029 4.51 1.544 4.887 2.081C21 5.62 21 7.22 21 10.417v1.574c0 5.638-4.239 8.375-6.899 9.536C13.38 21.842 13.02 22 12 22s-1.38-.158-2.101-.473C7.239 20.365 3 17.63 3 11.991z"}),(0,i.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:"1.5",d:"M12 8v4"}),(0,i.jsx)("circle",{cx:"12",cy:"15",r:"1",fill:"currentColor"})]})})),p=({warning:e,children:t,isHighRisk:r})=>{const n=(0,l.useCallback)((e=>(e=>{const t=e.type.replace(/_/g," ");return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()})(e)),[]);return(0,i.jsxs)("div",{className:"flex gap-1",children:[t,(0,i.jsxs)("div",{className:"flex flex-1 flex-col",children:[(0,i.jsx)("span",{className:(0,c.cn)("text-neutral-300",r&&"text-warning"),children:n(e)}),(0,i.jsx)("span",{className:(0,c.cn)("text-neutral-500",r&&"text-amber-200"),children:e.message})]})]},e.type)};t.default=({tokenAddress:e})=>{const t=(0,a.useMobile)(),{data:r,isFetching:n}=(0,o.useQuery)({queryKey:["shield",e],queryFn:()=>s.ultraSwapService.getShield([e]),gcTime:3e5,staleTime:3e5,placeholderData:o.keepPreviousData,select:t=>{const r=t.warnings[e];return{isNotVerified:r.find((e=>"NOT_VERIFIED"===e.type)),totalWarnings:r.length,highRiskWarnings:r.filter((e=>e.severity===s.Severity.CRITICAL||e.severity===s.Severity.WARNING)),otherWarnings:r.filter((e=>e.severity===s.Severity.INFO))}}});if(!r||0===r.totalWarnings)return null;const{isNotVerified:l,totalWarnings:g,highRiskWarnings:m,otherWarnings:y}=r;return l?(0,i.jsx)(u.default,{persistOnClick:t,placement:"bottom",drawShades:!0,buttonContentClassName:"!cursor-help",offset:[120,5],content:(0,i.jsxs)("div",{className:"flex flex-col gap-y-2 p-0 w-[260px]",children:[(0,i.jsxs)("div",{className:"text-sm font-semibold text-warning",children:[g," JupShield ",(0,i.jsx)(f.default,{one:"Warning",other:"Warnings",value:g})]}),m.length>0&&(0,i.jsx)("div",{className:"flex flex-col gap-y-2 rounded-md bg-warning/[8%] p-2",children:m.map((e=>(0,i.jsx)(p,{warning:e,isHighRisk:!0,children:(0,i.jsx)(d.default,{width:15,height:15,className:"text-warning"})},e.type)))}),y.length>0&&(0,i.jsx)("div",{className:(0,c.cn)("flex flex-col gap-y-2",m.length>0&&"p-2"),children:y.map((e=>(0,i.jsx)(p,{warning:e,isHighRisk:!1,children:(0,i.jsx)(d.default,{width:15,height:15})},e.type)))})]}),children:(0,i.jsxs)("div",{className:(0,c.cn)("mt-1 flex items-center gap-x-1",n&&"blur-sm"),children:[(0,i.jsx)(h,{width:15,height:15,className:"text-warning"}),(0,i.jsxs)("span",{className:(0,c.cn)("!text-xxs font-semibold text-warning underline decoration-warning decoration-dashed underline-offset-4"),children:[g," Warnings"]})]})}):null}},6766:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=r(4918),s=r(3799),a=n(r(770)),u=n(r(4311)),c=n(r(146)),l=n(r(1444)),f=n(r(6679)),d=r(1123),h=()=>{const{screen:e}=(0,o.useScreenState)();return(0,i.jsxs)("div",{id:"jupiter-plugin",className:" h-full bg-background relative flex flex-col justify-between",children:[(0,i.jsxs)("div",{children:["Initial"===e?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.default,{}),(0,i.jsx)(u.default,{})]}):null,"Swapping"===e?(0,i.jsx)(c.default,{}):null,"Wallet"===e?(0,i.jsx)(l.default,{}):null]}),(0,i.jsxs)("span",{className:"text-primary-text/50 text-xs p-2 flex-row flex gap-1 justify-center",children:["Powered by",(0,i.jsxs)("a",{href:"https://jup.ag",target:"_blank",rel:"noreferrer noopener",className:"flex items-center gap-1 ",children:[(0,i.jsx)(f.default,{className:"text-primary-text/50",width:15,height:15}),"Jupiter"]})]})]})};t.default=e=>(0,i.jsx)(s.SwapContextProvider,Object.assign({},e,{children:(0,i.jsx)(d.BrandingProvider,Object.assign({},e,{children:(0,i.jsx)(h,{})}))}))},2094:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=({value:e,one:t,other:r})=>(0,n.jsx)(n.Fragment,{children:1===e?t.replace("#",e.toString()):r.replace("#",e.toString())})},2036:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=r(758),s=r(7356),a=n(r(2889)),u=r(4250),c=r(1516),l=r(5418);t.default=({placement:e="auto",trigger:t="click",persistOnClick:r=!0,strategy:n="fixed",arrow:f=!1,buttonContent:d,popoverContent:h,contentClassName:p,buttonContentClassName:g,isOpen:m,onClose:y,matchWidth:v,offset:w,drawShades:b=!1})=>{const _=(0,o.useMemo)((()=>void 0===m),[]),x=(0,c.useMobile)(),[S,M]=(0,o.useState)(!_),[k,O]=(0,o.useState)(null),[E,I]=(0,o.useState)(null),A=(0,o.useMemo)((()=>Boolean(h)&&f),[h,f]),C=w?[{name:"offset",options:{offset:w}}]:void 0,{styles:j,attributes:N}=(0,s.usePopper)(k,E,{strategy:n,placement:e,modifiers:C}),T=(0,o.useCallback)((0,a.default)((()=>{_?M(!1):y&&y()}),"hover"===t&&r?50:0),[M,_,y,t,r]),P=(0,o.useCallback)((()=>{T.cancel(),M(!0)}),[M,T]);(0,l.useOutsideClick)({current:E},T);const R=_?S:m,D="hover"===t?x?{onTouchStart:P,onTouchEnd:T}:{onMouseEnter:P,onMouseLeave:T}:{};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",Object.assign({ref:O,onClick:()=>{_?(r&&"hover"===t||"click"===t)&&P():m&&y&&y()},className:(0,u.cn)(g,{"z-50":R})},D,{children:d})),R&&(0,i.jsxs)("div",Object.assign({id:"tooltip",ref:I,style:Object.assign(Object.assign({},j.popper),{maxWidth:v?null==k?void 0:k.clientWidth:"auto"})},N.popper,D,{className:(0,u.cn)("rounded-lg w-auto bg-none shadow-xl dark:bg-white/5 backdrop-blur-xl transition-opacity opacity-0",p,{"z-50 opacity-100":R}),children:[h,A?(0,i.jsx)("div",{id:"arrow",className:"before:absolute absolute before:w-2 w-2 before:h-2 h-2 before:bg-inherit bg-inherit before:visible before:rotate-45 invisible","data-popper-arrow":!0}):null]})),(0,i.jsx)("div",{className:(0,u.cn)("fixed top-0 left-0 w-full h-full transition-all opacity-0 pointer-events-none z-[-1]",{"!backdrop-blur-xxs !bg-black/20 opacity-100 pointer-events-auto z-40":b&&R}),onClick:T})]})}},4112:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=n(r(3432));function s(e){const t=["₀","₁","₂","₃","₄","₅","₆","₇","₈","₉"],r=e.toString();let n="";for(let e=0;e{const[r,n,a]=(e=>{const t=o.default.abs(o.default.ceil(new o.default(-1).mul(o.default.log10(e)))).toNumber(),[r,n]=[new o.default(e).toFixed().slice(0,t+2),new o.default(e).toFixed().slice(t+1)];return[t,r,n]})(e);return r<=5?(0,i.jsx)("span",{children:e.toFixed(6)}):(0,i.jsxs)("span",{className:"flex items-center h-4",children:["0.0",(0,i.jsx)("span",{className:"mb-3 text-xl mx-0.5",children:s(r-1)}),a.slice(0,t)]})}},3439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070),i=r(4250),o=r(3531);t.default=({gasFee:e,gasless:t})=>e?(0,n.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,n.jsx)("div",{className:"flex w-[50%] text-primary-text/50",children:(0,n.jsx)("span",{children:"Network Fee"})}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[t&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.UltraIcon,{color:"#FDB022",width:12,height:12}),(0,n.jsx)("div",{className:"text-xs text-primary-text",children:"Gasless"})]}),(0,n.jsxs)("div",{className:(0,i.cn)("text-primary-text",{"line-through":t}),children:[e," SOL"]})]})]}):null},5739:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=n(r(3432)),s=n(r(4080)),a=r(758),u=r(5418),c=n(r(3620)),l=n(r(3439)),f=r(4250);t.default=({quoteResponse:e,fromTokenInfo:t,toTokenInfo:r,loading:n,containerClassName:d})=>{const h={inAmount:(null==e?void 0:e.quoteResponse.inAmount)||s.default.BigInt(0),inputDecimal:t.decimals,outAmount:(null==e?void 0:e.quoteResponse.outAmount)||s.default.BigInt(0),outputDecimal:r.decimals},p=u.formatNumber.format(new o.default((null==e?void 0:e.quoteResponse.priceImpactPct)||0).mul(100).toDP(2)),g=Number(p)<.01?void 0:`-${p}%`,m=(0,a.useMemo)((()=>e?e.quoteResponse.platformFee.feeBps/100:0),[e]),y=(0,a.useMemo)((()=>{if(e){const{prioritizationFeeLamports:t,signatureFeeLamports:r}=e.quoteResponse;let n=0;return t&&(n+=t),r&&(n+=r),n/1e9}return 0}),[e]);return(0,i.jsxs)("div",{className:(0,f.cn)("mt-4 space-y-4 ",d),children:[(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,i.jsx)("div",{className:"text-primary-text/50",children:(0,i.jsx)("span",{children:"Rate"})}),s.default.greaterThan(h.inAmount,s.default.BigInt(0))&&s.default.greaterThan(h.outAmount,s.default.BigInt(0))?(0,i.jsx)(c.default,{loading:n,rateParams:h,fromTokenInfo:t,toTokenInfo:r,reversible:!0}):(0,i.jsx)("span",{className:"text-primary-text/50",children:"-"})]}),g&&(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs text-primary-text/50",children:[(0,i.jsx)("div",{children:(0,i.jsx)("span",{children:"Price Impact"})}),(0,i.jsx)("div",{className:"text-primary-text",children:g})]}),(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,i.jsx)("div",{className:"text-primary-text/50",children:(0,i.jsx)("span",{children:"Platform Fee"})}),(0,i.jsxs)("div",{className:"text-primary-text",children:[m,"%"]})]}),(0,i.jsx)(l.default,{gasFee:y,gasless:null==e?void 0:e.quoteResponse.gasless})]})}},6741:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SubmitButton=void 0;const i=r(6070),o=r(4250),s=n(r(9652)),a=r(758),u=r(3799);t.SubmitButton=({onSubmit:e})=>{const{quoteResponseMeta:t,loading:r,errors:n,swapping:{txStatus:c},form:l}=(0,u.useSwapContext)(),f=(0,a.useMemo)((()=>!(t&&!r&&!n.fromValue&&"loading"!==(null==c?void 0:c.status)&&"sending"!==(null==c?void 0:c.status)&&"pending-approval"!==(null==c?void 0:c.status))),[t,r,n.fromValue,c]),d=(0,a.useMemo)((()=>{var e;return n.fromValue?n.fromValue.title:(null===(e=null==t?void 0:t.quoteResponse)||void 0===e?void 0:e.errorMessage)?t.quoteResponse.errorMessage:r?"Loading":"sending"===(null==c?void 0:c.status)?"Sending":"pending-approval"===(null==c?void 0:c.status)?"Pending Approval":"Swap"}),[c,n.fromValue,r,t]);return(0,i.jsx)(s.default,{size:"lg",className:(0,o.cn)("w-full mt-4 disabled:opacity-50 !text-uiv2-text/75 !bg-primary "),onClick:e,disabled:f,children:(0,i.jsx)("span",{children:d})})}},8381:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070),i=r(4250),o=()=>(0,n.jsxs)("svg",{width:20,height:20,viewBox:"0 0 21 22",fill:"white",fillOpacity:.5,xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("path",{d:"M6.51043 7.47998V14.99H7.77043V7.47998L9.66043 9.36998L10.5505 8.47994L7.5859 5.51453C7.3398 5.26925 6.94114 5.26925 6.69504 5.51453L3.73047 8.47994L4.62051 9.36998L6.51043 7.47998Z",fill:"white"}),(0,n.jsx)("path",{d:"M14.4902 14.52V7.01001H13.2302V14.52L11.3402 12.63L10.4502 13.5201L13.4148 16.4855C13.6609 16.7308 14.0595 16.7308 14.3056 16.4855L17.2702 13.5201L16.3802 12.63L14.4902 14.52Z",fill:"white"})]});t.default=({className:e,onClick:t,disabled:r})=>(0,n.jsx)("div",{className:"flex justify-center bg-background rounded-full",children:(0,n.jsx)("div",{onClick:t,className:(0,i.cn)("border-[3px] border-background fill-current text-black bg-interactive hover:bg-interactive/80 dark:text-primary-text-35 dark:hover:border-primary dark:border dark:border-white-35 h-8 w-8 rounded-full flex items-center justify-center cursor-pointer",e,{"opacity-50 cursor-not-allowed":r}),children:(0,n.jsx)(o,{})})})},3657:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(6070),u=o(r(758)),c=s(r(2818)),l=r(1823);function f(e){return`https://wsrv.nl/?${new URLSearchParams({w:"48",h:"48",url:e.endsWith("/")?e.slice(0,-1):e}).toString()}`}const d=({width:e,height:t,imageUrl:r})=>(0,a.jsxs)("svg",{width:e,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-url":r,"data-transformed-url":f((null==r?void 0:r.toString())||""),children:[(0,a.jsx)("path",{d:"M12 0C18.6271 0 24 5.37288 24 12C24 18.6271 18.6269 24 12 24C5.37312 24 0 18.6286 0 12C0 5.37144 5.37216 0 12 0Z",fill:"#23C1AA"}),(0,a.jsx)("path",{d:"M10.79 14.55H12.89V14.355C12.89 13.925 13.01 13.55 13.25 13.23C13.49 12.91 13.765 12.605 14.075 12.315C14.315 12.085 14.545 11.85 14.765 11.61C14.985 11.36 15.165 11.09 15.305 10.8C15.455 10.5 15.53 10.16 15.53 9.78C15.53 9.25 15.395 8.75 15.125 8.28C14.855 7.8 14.45 7.41 13.91 7.11C13.38 6.8 12.725 6.645 11.945 6.645C11.305 6.645 10.725 6.765 10.205 7.005C9.69504 7.245 9.27504 7.575 8.94504 7.995C8.62504 8.415 8.42004 8.905 8.33004 9.465L10.415 9.99C10.475 9.61 10.64 9.31 10.91 9.09C11.19 8.86 11.515 8.745 11.885 8.745C12.315 8.745 12.64 8.85 12.86 9.06C13.09 9.26 13.205 9.52 13.205 9.84C13.205 10.15 13.09 10.425 12.86 10.665C12.63 10.895 12.37 11.155 12.08 11.445C11.77 11.765 11.475 12.14 11.195 12.57C10.925 13 10.79 13.545 10.79 14.205V14.55ZM10.73 18H12.98V15.75H10.73V18Z",fill:"white"})]});t.default=({info:e,width:t=32,height:r=32,enableUnknownTokenWarning:n=!0})=>{const[i,o]=u.useState(!1),[s,h]=u.useState(!1);u.useEffect((()=>{h(!1)}),[e]);const p=u.useMemo((()=>{var t;try{if(!(null==e?void 0:e.icon))return;return"undefined"!=typeof window&&(null===(t=null==e?void 0:e.icon)||void 0===t?void 0:t.startsWith("/"))?new URL(window.location.origin+e.icon):(null==e?void 0:e.icon)?new URL(e.icon):void 0}catch(e){return}}),[null==e?void 0:e.icon]),g=u.useMemo((()=>!!n&&(e?(0,l.checkIsUnknownToken)(e):void 0)),[n,e]),m=u.useMemo((()=>!p||!e||s&&i?(0,a.jsx)(d,{width:t,height:r,imageUrl:(null==p?void 0:p.toString())||""}):i?(0,a.jsx)("img",{src:e.icon,alt:e.symbol,width:t,height:r,style:{maxWidth:t,maxHeight:r},className:"object-cover rounded-full",onError:()=>{h(!0)}}):(0,a.jsx)("img",{src:f(e.icon||""),alt:e.symbol,width:t,height:r,style:{maxWidth:t,maxHeight:r},className:"object-cover rounded-full",onError:()=>{o(!0)}})),[s,r,p,e,i,t]);return(0,a.jsxs)("span",{className:"relative",children:[m,g&&(0,a.jsx)(c.default,{width:Math.max(.6*t,16),height:Math.max(.6*r,16),className:"absolute -p-1 text-warning -bottom-[2px] -right-[5px]"})]})}},6354:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=r(6498),s=n(r(9835)),a=r(4250),u=r(5418),c=({tokenInfo:e,className:t})=>{const{getTokenExplorer:r}=(0,o.usePreferredExplorer)();return(0,i.jsxs)("a",{target:"_blank",rel:"noreferrer",className:(0,a.cn)("flex items-center bg-black/25 text-primary-text/75 px-2 py-0.5 space-x-1 rounded cursor-pointer",t),href:r(e.id),onClick:e=>e.stopPropagation(),children:[(0,i.jsx)("div",{className:"text-xxs",children:(0,u.shortenAddress)(e.id)}),(0,i.jsx)(s.default,{})]})};c.displayName="TokenLink",t.default=c},8045:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=n(r(2036)),s=r(4250);t.default=({content:e,disabled:t=!1,variant:r="dark",children:n,offset:a,placement:u,persistOnClick:c,buttonContentClassName:l,contentClassName:f,drawShades:d,strategy:h})=>(0,i.jsx)(o.default,{placement:u||"top",buttonContent:n,buttonContentClassName:l,offset:a||[0,2.5],contentClassName:f,drawShades:d,popoverContent:e&&(0,i.jsx)("div",{className:(0,s.cn)("p-2 rounded-lg max-w-[360px] w-full text-xs",{"bg-white text-black":"light"===r,"bg-black text-primary-text":"dark"===r,"group-hover:visible group-hover:z-50":!t}),children:e}),id:"TooltipPopover",trigger:c?"click":"hover",persistOnClick:c,strategy:h})},3772:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WalletButton=void 0;const n=r(6070),i=r(758),o=r(4918),s=r(8709),a=r(5418),u=r(6338),c=r(6800);t.WalletButton=()=>{const{publicKey:e,connected:t,connecting:r,disconnect:l}=(0,s.useWalletPassThrough)(),[f,d]=(0,i.useState)(!1),h=(0,i.useRef)(null),{screen:p,setScreen:g}=(0,o.useScreenState)(),m=(0,i.useMemo)((()=>null==e?void 0:e.toBase58()),[e]);return(0,a.useOutsideClick)(h,(()=>{d(!1)})),(t||r)&&m?(0,n.jsxs)("div",{className:"cursor-pointer relative",children:[(0,n.jsx)("div",{onClick:()=>d(!f),children:(0,n.jsx)(u.CurrentUserBadge,{})}),"Initial"===p?(0,n.jsx)("ul",{"aria-label":"dropdown-list",className:f?"absolute block top-10 right-0 text-sm bg-black rounded-lg p-2 text-primary-text dark:bg-white dark:text-black":"hidden",ref:h,role:"menu",children:(0,n.jsx)("li",{onClick:()=>{d(!1),l()},role:"menuitem",children:(0,n.jsx)("span",{children:"Disconnect"})})}):null]}):(0,n.jsx)("div",{onClick:()=>g("Wallet"),className:"text-primary-text",children:(0,n.jsx)(c.WalletModalButton,{})})}},6800:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WalletModalButton=void 0;const n=r(6070),i=r(758),o=r(4918),s=r(8709);t.WalletModalButton=()=>{const{connecting:e}=(0,s.useWalletPassThrough)(),{setScreen:t}=(0,o.useScreenState)(),r=(0,i.useCallback)((e=>{window.Jupiter.enableWalletPassthrough&&window.Jupiter.onRequestConnectWallet?window.Jupiter.onRequestConnectWallet():t("Wallet")}),[t]);return(0,n.jsx)("button",{type:"button",className:"py-2 px-3 h-7 flex items-center rounded-2xl text-xs bg-interactive text-primary-text",onClick:r,children:e?(0,n.jsx)("span",{children:(0,n.jsx)("span",{children:"Connecting..."})}):(0,n.jsx)("span",{children:(0,n.jsx)("span",{children:"Connect Wallet"})})})}},5185:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(6800),t),i(r(3772),t)},4311:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(6070),s=r(758),a=r(3799),u=i(r(8107)),c=i(r(1664)),l=r(4250);t.default=()=>{const{form:e,setForm:t,loading:r}=(0,a.useSwapContext)(),[i,f]=(0,s.useState)(!1),[d,h]=(0,s.useState)(null),p=(0,s.useCallback)((e=>n(void 0,void 0,void 0,(function*(){t("fromMint"===d?t=>Object.assign(Object.assign(Object.assign({},t),{fromMint:e.id,fromValue:""}),t.toMint===e.id?{toMint:t.fromMint}:void 0):t=>Object.assign(Object.assign(Object.assign({},t),{toMint:e.id,toValue:""}),t.fromMint===e.id?{fromMint:t.toMint}:void 0)),h(null)}))),[d,t]);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("form",{className:(0,l.cn)({hidden:Boolean(d)}),children:(0,o.jsx)(u.default,{isDisabled:i,setSelectPairSelector:h})}),null!==d?(0,o.jsx)("div",{className:"absolute top-0 left-0 h-full w-full bg-black rounded-lg overflow-hidden",children:(0,o.jsx)(c.default,{onSubmit:p,onClose:()=>h(null)})}):null]})}},146:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6070),o=r(758),s=r(4918),a=r(3799),u=n(r(9652)),c=n(r(7167)),l=n(r(5739)),f=r(5418),d=r(6498),h=()=>(0,i.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsxs)("g",{clipPath:"url(#clip0_7547_116874)",children:[(0,i.jsx)("circle",{cx:"20",cy:"20",r:"20",fill:"#F04A44"}),(0,i.jsx)("path",{d:"M19.8444 25.4321C18.6773 25.4332 17.7205 24.5092 17.6793 23.3431L17.1718 9.04107C17.1507 8.45326 17.3706 7.88344 17.7786 7.46056C18.1867 7.03768 18.7492 6.7998 19.337 6.7998H20.3519C20.9397 6.7998 21.5021 7.03768 21.9102 7.46056C22.3183 7.88344 22.5382 8.45329 22.5171 9.04107L22.0096 23.3431C21.9684 24.5092 21.0116 25.4332 19.8444 25.4321Z",fill:"white"}),(0,i.jsx)("path",{d:"M22.8893 30.4989C22.8893 32.1809 21.5266 33.5436 19.8446 33.5436C18.1626 33.5436 16.7998 32.1809 16.7998 30.4989C16.7998 28.8169 18.1626 27.4541 19.8446 27.4541C21.5266 27.4541 22.8893 28.8169 22.8893 30.4989Z",fill:"white"})]}),(0,i.jsx)("defs",{children:(0,i.jsx)("clipPath",{id:"clip0_7547_116874",children:(0,i.jsx)("rect",{width:"40",height:"40",fill:"white"})})})]});t.default=()=>{const{displayMode:e,lastSwapResult:t,reset:r,swapping:{txStatus:n},fromTokenInfo:p,toTokenInfo:g,refresh:m}=(0,a.useSwapContext)(),{screen:y,setScreen:v}=(0,s.useScreenState)(),[w,b]=(0,o.useState)(""),_=()=>{r(),b(""),v("Initial"),m()},x=()=>{r({resetValues:!1}),b(""),v("Initial"),m()};(0,o.useEffect)((()=>{var e,r,n,i;if("Swapping"===y)return(null==t?void 0:t.swapResult)&&"error"in(null==t?void 0:t.swapResult)?(b((null===(r=null===(e=null==t?void 0:t.swapResult)||void 0===e?void 0:e.error)||void 0===r?void 0:r.message)||""),void(window.Jupiter.onSwapError&&window.Jupiter.onSwapError({error:null===(n=null==t?void 0:t.swapResult)||void 0===n?void 0:n.error,quoteResponseMeta:null==t?void 0:t.quoteReponse}))):void((null==t?void 0:t.swapResult)&&"txid"in(null==t?void 0:t.swapResult)&&window.Jupiter.onSuccess&&window.Jupiter.onSuccess({txid:null===(i=null==t?void 0:t.swapResult)||void 0===i?void 0:i.txid,swapResult:null==t?void 0:t.swapResult,quoteResponseMeta:null==t?void 0:t.quoteReponse}))}),[t,y]);const S=()=>{e&&"modal"!==e||window.Jupiter.close(),r(),v("Initial")},{explorer:M,getExplorer:k}=(0,d.usePreferredExplorer)();return(0,i.jsxs)("div",{className:"flex flex-col h-full w-full px-2",children:[w||"fail"===(null==n?void 0:n.status)?(0,i.jsx)("div",{children:(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center text-center mt-12",children:[(0,i.jsx)(h,{}),(0,i.jsx)("p",{className:"text-primary-text mt-2",children:"Swap Failed"}),(0,i.jsx)("p",{className:"text-primary-text/50 text-xs mt-2",children:"We were unable to complete the swap, please try again."}),w?(0,i.jsx)("p",{className:"text-primary-text/50 text-xs mt-2 break-all",children:w}):"",(0,i.jsx)(u.default,{size:"lg",className:"w-full mt-6 disabled:opacity-50 !text-uiv2-text/75 leading-none !max-h-14 bg-primary",onClick:x,children:(0,i.jsx)("span",{children:"Retry"})})]})}):null,w||"timeout"!==(null==n?void 0:n.status)?null:(0,i.jsx)("div",{className:"flex justify-center",children:(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center text-center mt-12",children:[(0,i.jsx)(h,{}),(0,i.jsx)("p",{className:"text-primary-text mt-2",children:"Transaction timed-out"}),(0,i.jsx)("p",{className:"text-primary-text/50 text-xs mt-2",children:"We were unable to complete the swap, please try again."}),w?(0,i.jsx)("p",{className:"text-primary-text/50 text-xs mt-2",children:w}):"",(0,i.jsx)(u.default,{size:"lg",className:"w-full mt-6 disabled:opacity-50 !text-uiv2-text/75 leading-none !max-h-14 bg-primary",onClick:x,children:(0,i.jsx)("span",{children:"Retry"})})]})}),w||"success"!==(null==n?void 0:n.status)?null:(0,i.jsx)((()=>{const{inputAmount:r,outputAmount:n,explorerLink:s}=(0,o.useMemo)((()=>({inputAmount:(null==t?void 0:t.swapResult)&&"inputAmount"in(null==t?void 0:t.swapResult)?null==t?void 0:t.swapResult.inputAmount:0,outputAmount:(null==t?void 0:t.swapResult)&&"outputAmount"in(null==t?void 0:t.swapResult)?null==t?void 0:t.swapResult.outputAmount:0,explorerLink:(null==t?void 0:t.swapResult)&&"txid"in(null==t?void 0:t.swapResult)?k(null==t?void 0:t.swapResult.txid):""})),[]);return p&&g&&(null==t?void 0:t.quoteReponse)?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"flex justify-center mt-8",children:(0,i.jsxs)("div",{className:" flex justify-center relative items-center",children:[(0,i.jsx)("div",{className:"bg-success bg-opacity-[15%] animate-pulse h-[60px] w-[60px] rounded-full"}),(0,i.jsx)("div",{className:"rounded-full absolute justify-center",children:(0,i.jsx)(c.default,{className:"text-success",height:56,width:56})})]})}),(0,i.jsxs)("div",{className:"flex flex-col justify-center items-center gap-y-2",children:[(0,i.jsxs)("div",{className:"mt-2 flex flex-col items-center justify-center text-center px-4",children:[(0,i.jsxs)("p",{className:"text-xs font-semibold text-primary-text",children:["Swapped ",(0,f.readableValue)(r,p.decimals)," ",p.symbol," to"]}),(0,i.jsxs)("p",{className:"text-2xl font-semibold text-primary-text",children:[(0,f.readableValue)(n,g.decimals)," ",g.symbol]})]}),(0,i.jsxs)("div",{className:" bg-module rounded-xl overflow-y-auto w-full webkit-scrollbar py-3 max-h-[260px] px-3",children:[(0,i.jsx)(l.default,{quoteResponse:null==t?void 0:t.quoteReponse,fromTokenInfo:p,toTokenInfo:g,loading:!1,containerClassName:" border-none mt-0"}),s&&(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs text-primary-text/50 mt-4",children:[(0,i.jsx)("div",{children:(0,i.jsx)("span",{children:"Transaction"})}),(0,i.jsxs)("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:"cursor-pointer text-primary-text ml-2 text-xs hover:underline",children:["View on ",M]})]})]})]}),(0,i.jsxs)("div",{className:"pb-4 flex space-x-2",children:[(0,i.jsx)(u.default,{size:"lg",className:"w-full mt-4 disabled:opacity-50 !text-uiv2-text/75 leading-none !max-h-14 bg-primary",onClick:_,children:(0,i.jsx)("span",{children:(0,i.jsx)("span",{className:"text-sm",children:"Swap More"})})}),"integrated"!==e?(0,i.jsx)(u.default,{size:"lg",className:"w-full mt-4 disabled:opacity-50 leading-none !max-h-14 text-primary-text bg-interactive",onClick:S,children:(0,i.jsx)("span",{className:"text-sm",children:"Close"})}):null]})]}):null}),{})]})}},1444:function(e,t,r){"use strict";var n=r(5640),i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=r(6070),a=r(209),u=r(758),c=r(4918),l=r(8709),f=o(r(4730));t.default=()=>{const{setScreen:e}=(0,c.useScreenState)(),{handleConnectClick:t}=(0,a.useUnifiedWalletContext)(),{wallets:r}=(0,l.useWalletPassThrough)(),o=(0,u.useMemo)((()=>null==r?void 0:r.length),[r]),d=(0,u.useMemo)((()=>o>0),[o]);return(0,s.jsxs)("div",{className:"text-primary-text p-2",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center mb-2 h-[28px] ",children:[(0,s.jsxs)("h1",{className:"text-sm font-bold",children:["Available Wallets (",o,")"]}),(0,s.jsx)("button",{onClick:()=>e("Initial"),className:"text-primary-text hover:text-primary-text/50 transition-colors bg-interactive rounded-full p-1",children:(0,s.jsx)(f.default,{width:15,height:15})})]}),!d&&(0,s.jsx)("div",{className:"text-sm font-medium text-primary-text flex items-center justify-center h-full py-4",children:"No wallet found"}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2",children:null==r?void 0:r.map((r=>(0,s.jsx)("button",{onClick:o=>((r,o)=>i(void 0,void 0,void 0,(function*(){try{yield t(r,o.adapter)}catch(e){n.error("Failed to connect wallet:",e)}finally{e("Initial")}})))(o,r),className:"w-full text-left bg-interactive p-4 rounded-lg transition-colors hover:bg-interactive/80 cursor-pointer",children:(0,s.jsx)("div",{className:"flex items-center justify-between",children:(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[r.adapter.icon&&(0,s.jsx)("img",{src:r.adapter.icon,alt:`${r.adapter.name} icon`,className:"w-8 h-8"}),(0,s.jsx)("div",{children:(0,s.jsx)("h2",{className:"text-sm font-medium",children:r.adapter.name})})]})})},r.adapter.name)))})]})}},640:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.INITIAL_FORM_CONFIG=t.MAX_INPUT_LIMIT=t.MINIMUM_SOL_BALANCE=t.WRAPPED_SOL_MINT=t.JLP_MINT=t.USDT_MINT=t.USDC_MINT=void 0;const n=r(3760),i=r(893);t.USDC_MINT=new n.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),t.USDT_MINT=new n.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),t.JLP_MINT=new n.PublicKey("27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4"),t.WRAPPED_SOL_MINT=new n.PublicKey("So11111111111111111111111111111111111111112"),t.MINIMUM_SOL_BALANCE=.01,t.MAX_INPUT_LIMIT=1e14,t.INITIAL_FORM_CONFIG=Object.freeze({simulateWalletPassthrough:!1,defaultExplorer:"Solana Explorer",formProps:{fixedAmount:!1,initialAmount:"",initialInputMint:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",initialOutputMint:t.WRAPPED_SOL_MINT.toString(),swapMode:i.SwapMode.ExactIn},colors:{primary:"199, 242, 132",background:"0, 0, 0",primaryText:"232, 249, 255",warning:"251, 191, 36",interactive:"33, 42, 54",module:"16, 23, 31"}})},1123:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useBranding=t.BrandingProvider=t.BrandingContext=void 0;const n=r(6070),i=r(758);t.BrandingContext=(0,i.createContext)({}),t.BrandingProvider=e=>{const{branding:r,children:o}=e,s=(0,i.useMemo)((()=>(null==r?void 0:r.logoUri)?r.logoUri:"https://jup.ag/svg/jupiter-logo.svg"),[null==r?void 0:r.logoUri]),a=(0,i.useMemo)((()=>(null==r?void 0:r.name)?r.name:"Jupiter"),[null==r?void 0:r.name]);return(0,n.jsx)(t.BrandingContext.Provider,{value:{logoUri:s,name:a},children:o})},t.useBranding=function(){return(0,i.useContext)(t.BrandingContext)}},5791:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ContextProvider=void 0;const s=r(6070),a=r(209),u=o(r(758)),c=r(758),l=r(6498),f=()=>{},d=({autoConnect:e,children:t})=>{const r=(()=>{if("undefined"!=typeof window)return window.Jupiter.enableWalletPassthrough})(),n=(0,c.useMemo)((()=>[]),[r]),[i,o]=(0,u.useState)({show:!1,message:""}),l=(0,c.useMemo)((()=>r?u.default.Fragment:({children:t})=>(0,s.jsx)(a.UnifiedWalletProvider,{wallets:n,config:{env:"mainnet-beta",autoConnect:void 0===e||e,metadata:{name:"Jupiter Plugin",url:"https://plugin.jup.ag",description:"An open-sourced, lite version of Jupiter that provides end-to-end swap flow by linking it in your HTML. Check out the visual demo for the various integration modes below. ",iconUrls:[]},hardcodedWallets:[],walletPrecedence:[],notificationCallback:{onConnect:f,onConnecting:f,onDisconnect:f,onNotInstalled:({walletName:e,metadata:t})=>{o({show:!0,message:(0,s.jsxs)("p",{className:"space-y-1",children:[e," is not installed.",(0,s.jsxs)("p",{className:"space-x-1",children:[(0,s.jsxs)("a",{className:"underline font-semibold",target:"_blank",rel:"noopener noreferrer",href:t.url,children:["Visit ",e," website"]}),(0,s.jsx)("span",{children:"to install it."})]})]})}),setTimeout((()=>{o({show:!1,message:""})}),5e3)}},theme:"jupiter"},children:t})),[e,r,n]);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l,{children:t}),i.show&&i.message?(0,s.jsx)("div",{className:"absolute bottom-2 w-full px-2",children:(0,s.jsx)("div",{className:"w-full h-full bg-white/10 rounded-lg p-2 text-warning text-xs",children:i.message})}):null]})};t.ContextProvider=e=>(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(d,Object.assign({},e,{children:(0,s.jsx)(l.PreferredExplorerProvider,{defaultExplorer:e.defaultExplorer,children:e.children})}))})},4918:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScreenProvider=t.useScreenState=t.ScreenStateContext=void 0;const n=r(6070),i=r(758);t.ScreenStateContext=(0,i.createContext)({screen:"Initial",setScreen(){}}),t.useScreenState=function(){return(0,i.useContext)(t.ScreenStateContext)},t.ScreenProvider=({children:e})=>{const[r,o]=(0,i.useState)("Initial");return(0,n.jsx)(t.ScreenStateContext.Provider,{value:{screen:r,setScreen:o},children:e})}},5440:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.searchService=void 0,t.searchService=new class{constructor(){this.ROUTE={SEARCH:"https://datapi.jup.ag/v1/assets"}}search(e){return r(this,void 0,void 0,(function*(){const t=yield fetch(`${this.ROUTE.SEARCH}/search?query=${e}`,{credentials:"include"});return yield t.json()}))}}},3799:function(e,t,r){"use strict";var n=r(5640),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SwapContextProvider=t.useSwapContext=t.SwapTransactionTimeoutError=t.SwapContext=void 0;const o=r(6070),s=i(r(3432)),a=i(r(4080)),u=r(758),c=r(640),l=r(5418),f=r(4918),d=r(8709),h=r(7162),p=r(4911),g=r(2124);t.SwapContext=(0,u.createContext)(null);class m extends Error{constructor(){super("Transaction timed-out")}}t.SwapTransactionTimeoutError=m,t.useSwapContext=function(){const e=(0,u.useContext)(t.SwapContext);if(!e)throw new Error("Missing SwapContextProvider");return e};const y={fromMint:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",toMint:c.WRAPPED_SOL_MINT.toString(),fromValue:"",toValue:""},v={swapMode:"ExactIn"};t.SwapContextProvider=e=>{var r,i;const{displayMode:m,scriptDomain:w,formProps:b,children:_,enableWalletPassthrough:x}=e,{screen:S}=(0,f.useScreenState)(),{wallet:M}=(0,d.useWalletPassThrough)(),{data:k,refetch:O}=(0,p.useBalances)(),E=(0,u.useRef)(!1),I=(0,u.useMemo)((()=>{var e;return null===(e=null==M?void 0:M.adapter.publicKey)||void 0===e?void 0:e.toString()}),[null==M?void 0:M.adapter.publicKey]),A=(0,u.useMemo)((()=>Object.assign(Object.assign({},v),b)),[b]),[C,j]=(0,u.useState)({fromMint:null!==(r=null==A?void 0:A.initialInputMint)&&void 0!==r?r:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",toMint:null!==(i=null==A?void 0:A.initialOutputMint)&&void 0!==i?i:c.WRAPPED_SOL_MINT.toString(),fromValue:"",toValue:""}),{data:N}=(0,g.useAsset)(C.fromMint),{data:T}=(0,g.useAsset)(C.toMint);(0,u.useEffect)((()=>{A.fixedMint&&A.fixedMint!==A.initialInputMint&&A.fixedMint!==A.initialOutputMint&&n.error("fixedMint is not the same as the initial input or output mint")}),[A.fixedMint,A.initialInputMint,A.initialOutputMint]);const[P,R]=(0,u.useState)({}),D=(0,u.useCallback)((()=>{if(!(null==A?void 0:A.initialAmount)||!N||!T)return;const e=()=>{if(A.initialAmount&&N)return new s.default(A.initialAmount).div(Math.pow(10,N.decimals)).toFixed()};setTimeout((()=>{j((t=>{var r;return Object.assign(Object.assign({},t),{fromValue:null!==(r=e())&&void 0!==r?r:""})}))}),0)}),[A.initialAmount,N,T]);(0,u.useEffect)((()=>{D()}),[A.initialAmount,D]);const L=(0,l.useDebounce)(C,250),B=(0,u.useMemo)((()=>JSON.stringify(C)!==JSON.stringify(L)),[C,L]),z=(0,u.useMemo)((()=>N&&T?!0===E.current?L.toValue&&(0,l.hasNumericValue)(L.toValue)?a.default.BigInt(new s.default(L.toValue).mul(Math.pow(10,T.decimals)).floor().toFixed()):a.default.BigInt(0):L.fromValue&&(0,l.hasNumericValue)(L.fromValue)?a.default.BigInt(new s.default(L.fromValue).mul(Math.pow(10,N.decimals)).floor().toFixed()):a.default.BigInt(0):a.default.BigInt(0)),[L.fromValue,L.toValue,N,T]),[U,W]=(0,u.useState)(void 0),{data:F,isFetching:q,error:H,refetch:K,errorUpdatedAt:Q,dataUpdatedAt:V,isSuccess:$,isError:Y}=(0,h.useQuoteQuery)({inputMint:L.fromMint,outputMint:L.toMint,amount:z.toString(),taker:I,swapMode:E.current?"ExactOut":"ExactIn",referralAccount:A.referralAccount,referralFee:A.referralFee,excludeDexes:A.excludeDexes},!U),G=(0,u.useMemo)((()=>{var e;return k&&(null===(e=k[C.fromMint])||void 0===e?void 0:e.uiAmount)||0}),[k,C.fromMint]);(0,u.useEffect)((()=>{if(H)return"string"==typeof H?void R({fromValue:{title:H,message:""}}):void R({fromValue:{title:"Error fetching route. Try changing your input",message:""}});C.fromValue&&new s.default(C.fromValue).gt(G)?R({fromValue:{title:`Insufficient ${null==N?void 0:N.symbol}`,message:""}}):R({})}),[H,G,C.fromValue,N]);const Z=(0,u.useMemo)((()=>q?(new Date).getTime():Y?new Date(Q).getTime():$?new Date(V).getTime():void 0),[q,Q,V,Y,$]),[J,X]=(0,u.useState)(null);(0,u.useEffect)((()=>{X(F||null)}),[F]),(0,u.useEffect)((()=>{C.fromValue||C.toValue||J?j((e=>{const t=Object.assign({},e);if(!N||!T)return e;const{outAmount:r,inAmount:n}=(null==J?void 0:J.quoteResponse)||{};return E.current?t.fromValue=n?new s.default(n.toString()).div(Math.pow(10,N.decimals)).toFixed():"":t.toValue=r?new s.default(r.toString()).div(Math.pow(10,T.decimals)).toFixed():"",t})):j((e=>Object.assign(Object.assign({},e),{fromValue:"",toValue:""})))}),[C.fromValue,C.toValue,N,J,T]);const[ee,te]=(0,u.useState)(null),re=(0,u.useCallback)((({resetValues:e}={resetValues:!1})=>{e?(j(y),D()):j((e=>Object.assign(Object.assign({},e),{toValue:""}))),X(null),R({}),te(null),W(void 0),O()}),[O,D]);return(0,u.useEffect)((()=>{"function"==typeof window.Jupiter.onFormUpdate&&window.Jupiter.onFormUpdate(C)}),[C]),(0,u.useEffect)((()=>{"function"==typeof window.Jupiter.onScreenUpdate&&window.Jupiter.onScreenUpdate(S)}),[S]),(0,o.jsx)(t.SwapContext.Provider,{value:{form:C,setForm:j,errors:P,setErrors:R,fromTokenInfo:N,toTokenInfo:T,quoteResponseMeta:J,setQuoteResponseMeta:X,lastSwapResult:ee,setLastSwapResult:te,reset:re,refresh:K,loading:q||B,quoteError:H,lastRefreshTimestamp:Z,isToPairFocused:E,displayMode:m,formProps:A,scriptDomain:w,swapping:{txStatus:U},setTxStatus:W,enableWalletPassthrough:x},children:_})}},8709:function(e,t,r){"use strict";var n=r(5640),i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.useWalletPassThrough=t.WalletPassthroughContext=void 0;const o=r(6070),s=r(209),a=r(972),u=r(758),c=r(7215),l={publicKey:null,wallets:[],wallet:null,connect:()=>i(void 0,void 0,void 0,(function*(){})),select:()=>{},connecting:!1,connected:!1,disconnect:()=>i(void 0,void 0,void 0,(function*(){})),autoConnect:!1,disconnecting:!1,sendTransaction:(e,t,r)=>i(void 0,void 0,void 0,(function*(){return""})),signTransaction:void 0,signAllTransactions:void 0,signMessage:void 0,signIn:void 0};t.WalletPassthroughContext=(0,u.createContext)(l),t.useWalletPassThrough=function(){return(0,u.useContext)(t.WalletPassthroughContext)};const f=({children:e})=>{const r=(0,s.useWallet)();return(0,o.jsx)(t.WalletPassthroughContext.Provider,{value:r,children:e})};t.default=({children:e})=>{var r;const[s]=(0,a.useAtom)(c.appProps),d=null===(r=null==s?void 0:s.passthroughWalletContextState)||void 0===r?void 0:r.wallet,h=(0,u.useMemo)((()=>Object.assign(Object.assign(Object.assign({},l),null==s?void 0:s.passthroughWalletContextState),{disconnect:()=>i(void 0,void 0,void 0,(function*(){var e,t;try{if(null===(e=null==d?void 0:d.adapter)||void 0===e?void 0:e.disconnect)return null===(t=null==d?void 0:d.adapter)||void 0===t?void 0:t.disconnect()}catch(e){n.log(e)}}))})),[null==s?void 0:s.passthroughWalletContextState,null==d?void 0:d.adapter]);return window.Jupiter.enableWalletPassthrough?h?(0,o.jsx)(t.WalletPassthroughContext.Provider,{value:h,children:e}):(0,o.jsx)(o.Fragment,{children:e}):(0,o.jsx)(f,{children:e})}},6498:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePreferredExplorer=t.PreferredExplorerProvider=t.AVAILABLE_EXPLORER=void 0;const n=r(6070),i=r(758);t.AVAILABLE_EXPLORER=[{name:"Solana Explorer",url:"https://explorer.solana.com/",get:(e,t="mainnet-beta")=>"mainnet-beta"!==t?`https://explorer.solana.com/tx/${e}?cluster=${t}`:`https://explorer.solana.com/tx/${e}`,getToken:(e,t="mainnet-beta")=>"mainnet-beta"!==t?`https://explorer.solana.com/address/${e}?cluster=${t}`:`https://explorer.solana.com/address/${e}`},{name:"Solscan",url:"https://solscan.io/",get:(e,t="mainnet-beta")=>"mainnet-beta"!==t?`https://solscan.io/tx/${e}?cluster=${t}`:`https://solscan.io/tx/${e}`,getToken:(e,t="mainnet-beta")=>"mainnet-beta"!==t?`https://solscan.io/token/${e}?cluster=${t}`:`https://solscan.io/token/${e}`},{name:"Solana Beach",url:"https://solanabeach.io/",get:(e,t="mainnet-beta")=>"mainnet-beta"!==t?`https://solanabeach.io/transaction/${e}?cluster=${t}`:`https://solanabeach.io/transaction/${e}`,getToken:(e,t="mainnet-beta")=>"mainnet-beta"!==t?`https://solanabeach.io/address/${e}?cluster=${t}`:`https://solanabeach.io/address/${e}`},{name:"SolanaFM",url:"https://solana.fm/",get:(e,t="mainnet-beta")=>"devnet"===t?`https://solana.fm/tx/${e}?cluster=devnet-solana`:"testnet"===t?`https://solana.fm/tx/${e}?cluster=testnet-qn1`:`https://solana.fm/tx/${e}`,getToken:(e,t="mainnet-beta")=>"devnet"===t?`https://solana.fm/address/${e}?cluster=devnet-solana`:"testnet"===t?`https://solana.fm/address/${e}?cluster=testnet-qn1`:`https://solana.fm/address/${e}`}];const o=(0,i.createContext)({explorer:t.AVAILABLE_EXPLORER[0].name,getExplorer:(e,t)=>"",getTokenExplorer:(e,t)=>"",setExplorer:e=>{}});t.PreferredExplorerProvider=({defaultExplorer:e,children:r})=>{const[s,a]=(0,i.useState)(null!=e?e:t.AVAILABLE_EXPLORER[0].name),u=(0,i.useMemo)((()=>t.AVAILABLE_EXPLORER.find((e=>e.name===s))||t.AVAILABLE_EXPLORER[0]),[s]),c=(0,i.useCallback)(((e,t)=>u.get(e,t)),[u]),l=(0,i.useCallback)(((e,t)=>u.getToken(e,t)),[u]);return(0,n.jsx)(o.Provider,{value:{explorer:s,getExplorer:c,getTokenExplorer:l,setExplorer:e=>a(e)},children:r})},t.usePreferredExplorer=function(){return(0,i.useContext)(o)}},5587:function(e,t){"use strict";var r,n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ultraSwapService=t.Severity=t.AGGREGATOR_SOURCES=void 0,t.AGGREGATOR_SOURCES={METIS:"metis",JUPITERZ:"jupiterz",HASHFLOW:"hashflow",DFLOW:"dflow"},function(e){e.INFO="info",e.WARNING="warning",e.CRITICAL="critical"}(r||(t.Severity=r={})),t.ultraSwapService=new class{constructor(){this.BASE_URL="https://ultra-api.jup.ag",this.ROUTE={SWAP:`${this.BASE_URL}/execute`,ORDER:`${this.BASE_URL}/order`,ROUTERS:`${this.BASE_URL}/order/routers`,BALANCES:`${this.BASE_URL}/balances`,SHIELD:`${this.BASE_URL}/shield`}}getQuote(e,t){return n(this,void 0,void 0,(function*(){const r=new URLSearchParams(Object.entries(e).filter((([e,t])=>void 0!==t)).reduce(((e,[t,r])=>Object.assign(Object.assign({},e),{[t]:r.toString()})),{})),n=yield fetch(`${this.ROUTE.ORDER}?${r.toString()}`,{signal:t,headers:{"x-client-platform":"jupiter.plugin"}});if(!n.ok)throw n;return yield n.json()}))}submitSwap(e,t){return n(this,void 0,void 0,(function*(){const r=yield fetch(this.ROUTE.SWAP,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signedTransaction:e,requestId:t})});if(!r.ok)throw r;return yield r.json()}))}getRouters(){return n(this,void 0,void 0,(function*(){const e=yield fetch(this.ROUTE.ROUTERS);if(!e.ok)throw e;return yield e.json()}))}getBalance(e,t){return n(this,void 0,void 0,(function*(){const r=yield fetch(`${this.ROUTE.BALANCES}/${e}`,{signal:t});if(!r.ok)throw r;return yield r.json()}))}getShield(e){return n(this,void 0,void 0,(function*(){const t=yield fetch(`${this.ROUTE.SHIELD}?mints=${e.join(",")}`);if(!t.ok)throw t;return yield t.json()}))}}},1049:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FormattedUltraQuoteResponse=void 0;const i=r(3760),o=n(r(4080)),s=r(7110),a=(0,s.coerce)((0,s.instance)(i.PublicKey),(0,s.string)(),(e=>new i.PublicKey(e))),u=(0,s.coerce)((0,s.instance)(o.default),(0,s.string)(),(e=>o.default.BigInt(e))),c=(0,s.coerce)((0,s.string)(),(0,s.number)(),(e=>Number(e))),l=(0,s.type)({ammKey:a,label:(0,s.string)(),inputMint:(0,s.string)(),outputMint:(0,s.string)(),inAmount:u,outAmount:u}),f=(0,s.type)({swapInfo:l,percent:(0,s.number)()}),d=(0,s.array)(f),h=(0,s.type)({feeBps:(0,s.number)()});t.FormattedUltraQuoteResponse=(0,s.type)({inputMint:a,inAmount:u,outputMint:a,outAmount:u,otherAmountThreshold:u,priceImpactPct:c,routePlan:d,slippageBps:(0,s.number)(),contextSlot:(0,s.defaulted)((0,s.number)(),0),computedAutoSlippage:(0,s.optional)((0,s.number)()),transaction:(0,s.nullable)((0,s.string)()),swapType:(0,s.string)(),gasless:(0,s.boolean)(),requestId:(0,s.string)(),prioritizationFeeLamports:(0,s.optional)((0,s.number)()),prioritizationFeePayer:(0,s.nullable)(a),rentFeeLamports:(0,s.optional)((0,s.number)()),rentFeePayer:(0,s.nullable)(a),signatureFeeLamports:(0,s.optional)((0,s.number)()),signatureFeePayer:(0,s.nullable)(a),feeBps:(0,s.number)(),router:(0,s.string)(),errorMessage:(0,s.optional)((0,s.string)()),platformFee:h})},128:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransactionError=void 0;class r extends Error{constructor(e,t,r,n,i){super(e),this.name="TransactionError",this.txid=t,this.code=r,this.programIds=n,this.serializedTx=i}}t.TransactionError=r},2124:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useAsset=t.ASSET_QUERY_KEY=void 0;const n=r(2518),i=r(5440);t.ASSET_QUERY_KEY=["search","assets"],t.useAsset=e=>(0,n.useQuery)({queryKey:[...t.ASSET_QUERY_KEY,e],queryFn:()=>i.searchService.search(e),enabled:!!e,staleTime:1/0,select:e=>e[0]})},4911:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.useBalances=void 0;const i=r(2518),o=r(5587),s=r(8709),a=r(758),u=r(640),c=r(3594),l=u.WRAPPED_SOL_MINT.toString();t.useBalances=()=>{const{publicKey:e}=(0,s.useWalletPassThrough)(),t=(0,a.useMemo)((()=>e?e.toString():""),[e]);return(0,i.useQuery)({queryKey:["ultra","balances",t],queryFn:({signal:e})=>n(void 0,void 0,void 0,(function*(){return yield o.ultraSwapService.getBalance(t,e)})),enabled:!!t&&(0,c.getPluginInView)(),gcTime:2e4,staleTime:2e4,refetchOnWindowFocus:!1,refetchIntervalInBackground:!1,refetchOnMount:!1,select:e=>function(e){const t=structuredClone(e);return t[l]&&(t.wSOL=Object.assign({},t[l])),t.SOL&&(t[l]=Object.assign({},t.SOL)),t}(e)})}},1516:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useMobile=void 0;const n=r(758),i=r(4412);t.useMobile=()=>{const[e,t]=(0,n.useState)(!1);return(0,i.useIsomorphicLayoutEffect)((()=>{function e(){const e=window.matchMedia("(min-width: 1024px)");t(e.matches)}return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[]),!e}},258:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.useSearch=void 0;const i=r(758),o=r(2518),s=r(5440);t.useSearch=(e,t={})=>{var r,a;const u=(0,i.useMemo)((()=>e.join(",")),[e]);return(0,o.useQuery)({queryKey:["search",u],queryFn:()=>n(void 0,void 0,void 0,(function*(){if(0===e.length)return s.searchService.search("");const t=[];for(let r=0;rs.searchService.search(e.join(","))));return(yield Promise.allSettled(r)).flatMap((e=>"fulfilled"===e.status?e.value:[]))})),enabled:null===(r=t.enabled)||void 0===r||r,staleTime:null!==(a=t.staleTime)&&void 0!==a?a:1/0})}},4730:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=({width:e=20,height:t=20})=>(0,n.jsx)("svg",{width:e,height:t,viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)("path",{d:"M2.0336 16.2126L8.2336 10.0126L2.0336 3.81263C1.7961 3.57903 1.66172 3.25951 1.66016 2.92669C1.65938 2.59309 1.79141 2.27357 2.02734 2.03763C2.26328 1.80247 2.5828 1.67045 2.9164 1.67201C3.25 1.67357 3.56874 1.80795 3.80234 2.04623L9.99994 8.24623L16.1999 2.04623C16.4335 1.80795 16.7523 1.67357 17.0859 1.67201C17.4187 1.67045 17.739 1.80248 17.9749 2.03763C18.2109 2.27357 18.3429 2.59309 18.3413 2.92669C18.3406 3.25951 18.2062 3.57903 17.9687 3.81263L11.7663 10.0126L17.9663 16.2126C18.2038 16.4462 18.3382 16.7658 18.3397 17.0986C18.3405 17.4322 18.2085 17.7517 17.9725 17.9876C17.7366 18.2228 17.4171 18.3548 17.0835 18.3533C16.7499 18.3517 16.4311 18.2173 16.1975 17.979L9.99994 11.779L3.79994 17.979C3.31088 18.4611 2.52494 18.4579 2.039 17.9736C1.55384 17.4884 1.54994 16.7025 2.03119 16.2126L2.0336 16.2126Z",fill:"currentColor"})})},9835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=()=>(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)("path",{d:"M4 2V3H1.5V8.5H7V6H8V9C8 9.13261 7.94732 9.25979 7.85355 9.35355C7.75979 9.44732 7.63261 9.5 7.5 9.5H1C0.867392 9.5 0.740215 9.44732 0.646447 9.35355C0.552678 9.25979 0.5 9.13261 0.5 9V2.5C0.5 2.36739 0.552678 2.24021 0.646447 2.14645C0.740215 2.05268 0.867392 2 1 2H4ZM9.5 0.5V4.5H8.5V2.2065L4.6035 6.1035L3.8965 5.3965L7.7925 1.5H5.5V0.5H9.5Z",fill:"currentColor"})})},2182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=e=>(0,n.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",height:"1em",width:"1em",viewBox:"0 0 256 256"},e,{children:(0,n.jsx)("path",{fill:"currentColor",d:"M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m-8-80V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12"})}))},6679:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JupiterLogoV2=void 0;const n=r(6070);t.JupiterLogoV2=e=>(0,n.jsxs)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"128",height:"128",viewBox:"0 0 33 32",fill:"none"},e,{children:[(0,n.jsx)("g",{clipPath:"url(#clip0_11565_169621)",children:(0,n.jsxs)("g",{filter:"url(#filter0_d_11565_169621)",children:[(0,n.jsx)("path",{d:"M3.09074 25.1666C4.44267 27.0471 6.17683 28.6205 8.1795 29.7838C10.1822 30.947 12.4081 31.6738 14.7114 31.9165C13.5264 30.1333 11.8039 28.4928 9.65354 27.2438C7.50318 25.9948 5.22592 25.3125 3.09074 25.1666Z",fill:"url(#paint0_linear_11565_169621)"}),(0,n.jsx)("path",{d:"M12.543 22.2705C8.40015 19.8636 3.91612 19.2502 0.707663 20.3338C1.0174 21.3575 1.42589 22.3487 1.92738 23.2934C4.71498 23.2288 7.75856 23.9859 10.5906 25.6308C13.4227 27.2757 15.5888 29.5459 16.9143 32C17.9839 31.9672 19.0479 31.8309 20.0913 31.5932C19.4426 28.2698 16.6849 24.6779 12.543 22.2705Z",fill:"url(#paint1_linear_11565_169621)"}),(0,n.jsx)("path",{d:"M32.2852 12.5009C31.7585 10.3584 30.8054 8.34403 29.4829 6.57804C28.1604 4.81205 26.4956 3.33067 24.5879 2.22235C22.6802 1.11403 20.5687 0.401504 18.3796 0.127309C16.1904 -0.146885 13.9684 0.0228794 11.8463 0.626465C15.3915 1.06033 19.3267 2.39122 23.1859 4.63324C27.0452 6.87525 30.1533 9.63411 32.2852 12.5009Z",fill:"url(#paint2_linear_11565_169621)"}),(0,n.jsx)("path",{d:"M27.1271 20.3583C25.3124 17.3446 22.2038 14.4588 18.3743 12.2342C14.5449 10.0095 10.4991 8.7388 6.98531 8.65474C3.894 8.58152 1.57389 9.48017 0.621548 11.1197C0.616125 11.1294 0.608532 11.1386 0.602566 11.1484C0.516877 11.4559 0.44312 11.7639 0.37587 12.0731C1.70568 11.5481 3.24645 11.2558 4.95969 11.2232C8.76959 11.1517 13.0334 12.3703 16.9681 14.6562C20.9027 16.9422 24.0759 20.0438 25.9003 23.3878C26.7182 24.8944 27.2285 26.3777 27.4308 27.7948C27.6662 27.5844 27.8972 27.3669 28.1212 27.1408C28.1272 27.1305 28.131 27.1196 28.1369 27.1088C29.0893 25.4677 28.721 23.0076 27.1271 20.3583Z",fill:"url(#paint3_linear_11565_169621)"}),(0,n.jsx)("path",{d:"M15.4609 17.2485C9.59662 13.8416 3.11626 13.3079 0 15.6855C0.00612096 16.4297 0.0630166 17.1726 0.170292 17.9091C1.08699 17.6312 2.03177 17.4562 2.98718 17.3874C6.46952 17.1254 10.3087 18.0957 13.7927 20.1207C17.2766 22.1458 20.023 25.0018 21.5209 28.1543C21.935 29.018 22.2508 29.9254 22.4624 30.8595C23.1555 30.5878 23.8294 30.2694 24.4794 29.9066C25.0011 26.0213 21.3268 20.656 15.4609 17.2485Z",fill:"url(#paint4_linear_11565_169621)"}),(0,n.jsx)("path",{d:"M30.1434 15.3141C28.3082 12.3036 25.1724 9.40969 21.3158 7.17039C17.4593 4.93109 13.3977 3.64033 9.87257 3.53674C7.1853 3.45919 5.10382 4.11053 4.02457 5.34109C8.50588 4.58182 14.4168 5.85794 20.146 9.18625C25.8753 12.5146 29.9135 17.0181 31.4722 21.2868C32.0064 19.7406 31.5416 17.6098 30.1434 15.3141Z",fill:"url(#paint5_linear_11565_169621)"})]})}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("filter",{id:"filter0_d_11565_169621",x:"-22.7449",y:"-20.4704",width:"77.7749",height:"77.4898",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB",children:[(0,n.jsx)("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),(0,n.jsx)("feColorMatrix",{in:"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",result:"hardAlpha"}),(0,n.jsx)("feOffset",{dy:"2.27449"}),(0,n.jsx)("feGaussianBlur",{stdDeviation:"11.3724"}),(0,n.jsx)("feComposite",{in2:"hardAlpha",operator:"out"}),(0,n.jsx)("feColorMatrix",{type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0"}),(0,n.jsx)("feBlend",{mode:"normal",in2:"BackgroundImageFix",result:"effect1_dropShadow_11565_169621"}),(0,n.jsx)("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_dropShadow_11565_169621",result:"shape"})]}),(0,n.jsxs)("linearGradient",{id:"paint0_linear_11565_169621",x1:"21.5",y1:"6.5",x2:"6.66667",y2:"32",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0.0001",stopColor:"currentColor"}),(0,n.jsx)("stop",{offset:"1",stopColor:"currentColor"})]}),(0,n.jsxs)("linearGradient",{id:"paint1_linear_11565_169621",x1:"21.5",y1:"6.5",x2:"6.66667",y2:"32",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0.0001",stopColor:"currentColor"}),(0,n.jsx)("stop",{offset:"1",stopColor:"currentColor"})]}),(0,n.jsxs)("linearGradient",{id:"paint2_linear_11565_169621",x1:"21.5",y1:"6.5",x2:"6.66667",y2:"32",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0.0001",stopColor:"currentColor"}),(0,n.jsx)("stop",{offset:"1",stopColor:"currentColor"})]}),(0,n.jsxs)("linearGradient",{id:"paint3_linear_11565_169621",x1:"21.5",y1:"6.5",x2:"6.66667",y2:"32",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0.0001",stopColor:"currentColor"}),(0,n.jsx)("stop",{offset:"1",stopColor:"currentColor"})]}),(0,n.jsxs)("linearGradient",{id:"paint4_linear_11565_169621",x1:"21.5",y1:"6.5",x2:"6.66667",y2:"32",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0.0001",stopColor:"currentColor"}),(0,n.jsx)("stop",{offset:"1",stopColor:"currentColor"})]}),(0,n.jsxs)("linearGradient",{id:"paint5_linear_11565_169621",x1:"21.5",y1:"6.5",x2:"6.66667",y2:"32",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0.0001",stopColor:"currentColor"}),(0,n.jsx)("stop",{offset:"1",stopColor:"currentColor"})]}),(0,n.jsx)("clipPath",{id:"clip0_11565_169621",children:(0,n.jsx)("rect",{width:"32.2852",height:"32",fill:"white"})})]})]})),t.default=t.JupiterLogoV2},3288:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=({width:e="12",height:t="12"})=>(0,n.jsx)("svg",{width:e,height:t,viewBox:"0 0 53 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)("path",{d:"M17.3336 23.8334H43.7062V28.1667H17.3336L28.9555 39.7887L25.8919 42.8524L9.03955 26L25.8919 9.14771L28.9555 12.2114L17.3336 23.8334Z",fill:"currentColor"})})},1192:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=({width:e="12",height:t="12"})=>(0,n.jsxs)("svg",{width:e,height:t,viewBox:"0 0 12 12",fill:"inherit",xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("g",{clipPath:"url(#clip0_841_4053)",children:(0,n.jsx)("path",{d:"M11.6466 4.23513V0.706082L10.4111 1.94156C9.3173 0.741165 7.72912 0 6 0C2.6827 0 0 2.6827 0 6C0 9.3173 2.68203 12 6 12C7.69405 12 9.21142 11.2939 10.3059 10.165L9.31797 9.14128C8.50601 10.0234 7.30561 10.5879 6 10.5879C3.45892 10.5879 1.41216 8.5411 1.41216 6.00002C1.41216 3.45894 3.45892 1.41218 6 1.41218C7.34135 1.41218 8.57615 2.01238 9.42317 2.92954L8.11757 4.23515L11.6466 4.23513Z",fill:"inherit"})}),(0,n.jsx)("defs",{children:(0,n.jsx)("clipPath",{id:"clip0_841_4053",children:(0,n.jsx)("rect",{width:e,height:t,fill:"white"})})})]})},4470:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=()=>(0,n.jsx)("div",{className:"flex items-center text-primary-text fill-current",children:(0,n.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"inherit",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)("path",{d:"M7.30327 14.6058C8.75327 14.6074 10.1705 14.1746 11.3729 13.3637L15.5971 17.5871C16.1463 18.1371 17.0377 18.1371 17.5877 17.5871C18.1377 17.0371 18.1377 16.1457 17.5877 15.5964L13.3643 11.3722C14.5823 9.55661 14.9229 7.28943 14.2909 5.19563C13.6596 3.10183 12.1229 1.40183 10.1033 0.56283C8.08365 -0.276231 5.79385 -0.16607 3.86505 0.86283C1.93537 1.89251 0.569053 3.73243 0.140853 5.87683C-0.286487 8.02143 0.269759 10.2448 1.65725 11.9354C3.04397 13.6261 5.11665 14.6064 7.30325 14.6058H7.30327ZM7.30327 1.68943C8.79233 1.68865 10.2197 2.28005 11.2729 3.33319C12.3252 4.38631 12.9166 5.81359 12.9166 7.30279C12.9166 8.79199 12.3252 10.2192 11.2729 11.2724C10.2198 12.3247 8.79247 12.9162 7.30327 12.9162C5.81407 12.9162 4.38687 12.3247 3.33367 11.2724C2.28133 10.2193 1.68913 8.79199 1.68991 7.30279C1.69148 5.81451 2.28287 4.38719 3.33523 3.33479C4.38759 2.28239 5.81483 1.69103 7.30323 1.68947L7.30327 1.68943Z",fill:"inherit",fillOpacity:"0.25"})})})},7167:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=e=>(0,n.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"256",height:"256",viewBox:"0 0 256 256"},e,{children:(0,n.jsx)("path",{fill:"currentColor",d:"M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m45.66 85.66l-56 56a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L112 148.69l50.34-50.35a8 8 0 0 1 11.32 11.32"})}))},3531:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UltraIcon=void 0;const n=r(6070);t.UltraIcon=e=>(0,n.jsxs)("svg",Object.assign({viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",height:"1em",width:"1em"},e,{children:[(0,n.jsxs)("g",{clipPath:"url(#clip0_1785_33901)",children:[(0,n.jsx)("path",{d:"M7.20001 7.86127C7.45429 7.86127 7.69815 7.96228 7.87795 8.14208C8.05775 8.32188 8.15876 8.56574 8.15876 8.82002C8.15876 8.56574 8.25977 8.32188 8.43957 8.14208C8.61937 7.96228 8.86324 7.86127 9.11751 7.86127C8.86324 7.86127 8.61937 7.76026 8.43957 7.58046C8.25977 7.40066 8.15876 7.15679 8.15876 6.90252C8.15876 7.15679 8.05775 7.40066 7.87795 7.58046C7.69815 7.76026 7.45429 7.86127 7.20001 7.86127ZM7.20001 2.10877C7.45429 2.10877 7.69815 2.20978 7.87795 2.38958C8.05775 2.56938 8.15876 2.81324 8.15876 3.06752C8.15876 2.81324 8.25977 2.56938 8.43957 2.38958C8.61937 2.20978 8.86324 2.10877 9.11751 2.10877C8.86324 2.10877 8.61937 2.00776 8.43957 1.82796C8.25977 1.64816 8.15876 1.40429 8.15876 1.15002C8.15876 1.40429 8.05775 1.64816 7.87795 1.82796C7.69815 2.00776 7.45429 2.10877 7.20001 2.10877Z",stroke:"currentColor",strokeWidth:"0.95875",strokeLinecap:"round",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M4.09971 1.42435C4.08095 1.37314 4.04691 1.32892 4.00219 1.29768C3.95748 1.26644 3.90425 1.24969 3.84971 1.24969C3.79517 1.24969 3.74194 1.26644 3.69723 1.29768C3.65251 1.32892 3.61847 1.37314 3.59971 1.42435L3.34534 2.11935C3.1457 2.6643 2.82969 3.15919 2.41931 3.56957C2.00893 3.97996 1.51403 4.29596 0.969084 4.4956L0.274086 4.74998C0.222871 4.76874 0.178655 4.80279 0.147417 4.8475C0.116179 4.89221 0.0994263 4.94543 0.0994263 4.99998C0.0994263 5.05452 0.116179 5.10775 0.147417 5.15246C0.178655 5.19717 0.222871 5.23122 0.274086 5.24998L0.969084 5.50435C1.51403 5.70399 2.00893 6.02001 2.41931 6.43039C2.82969 6.84077 3.1457 7.33566 3.34534 7.88061L3.59971 8.5756C3.61847 8.62681 3.65251 8.67103 3.69723 8.70227C3.74194 8.7335 3.79517 8.75026 3.84971 8.75026C3.90425 8.75026 3.95748 8.7335 4.00219 8.70227C4.04691 8.67103 4.08095 8.62681 4.09971 8.5756L4.35409 7.88061C4.55372 7.33566 4.86973 6.84077 5.28011 6.43039C5.69049 6.02001 6.18538 5.70399 6.73033 5.50435L7.42533 5.24998C7.47654 5.23122 7.52076 5.19717 7.552 5.15246C7.58323 5.10775 7.59999 5.05452 7.59999 4.99998C7.59999 4.94543 7.58323 4.89221 7.552 4.8475C7.52076 4.80279 7.47654 4.76874 7.42533 4.74998L6.73033 4.4956C6.18538 4.29596 5.8125 3.97995 5.40212 3.56957C4.99174 3.15919 4.55372 2.6643 4.35409 2.11935L4.09971 1.42435Z",fill:"currentColor"})]}),(0,n.jsx)("defs",{children:(0,n.jsx)("clipPath",{id:"clip0_1785_33901",children:(0,n.jsx)("rect",{width:"10",height:"10",fill:"white"})})})]}))},2213:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=({width:e=20,height:t=20})=>(0,n.jsx)("svg",{width:e,height:t,viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)("path",{d:"M2.0625 11H10.3125V2.75H8.59375V0H2.0625C0.923158 0 0 0.923158 0 2.0625V8.9375C0 10.0768 0.923158 11 2.0625 11ZM8.9375 4.125V9.625H2.0625C1.6825 9.625 1.375 9.3175 1.375 8.9375V4.00486C1.59589 4.08408 1.82818 4.12437 2.0625 4.12504L8.9375 4.125ZM2.0625 1.375H7.21875V2.75H2.0625C1.6825 2.75 1.375 2.4425 1.375 2.0625C1.375 1.6825 1.6825 1.375 2.0625 1.375Z",fill:"white",fillOpacity:"0.25"})})},2818:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(6070);t.default=e=>(0,n.jsxs)("svg",Object.assign({width:"12",height:"12",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e,{children:[(0,n.jsx)("rect",{x:"8",y:"6",width:"4",height:"10",fill:"white"}),(0,n.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.8634 15.6962C17.5539 15.1565 11.3038 4.37041 10.7692 3.44957C10.4179 2.8452 9.58075 2.85511 9.22912 3.44957C8.83702 4.11227 2.55515 14.9396 2.11839 15.7235C1.7984 16.2978 2.15189 17.0509 2.88009 17.0509H17.0974C17.7586 17.0509 18.2502 16.3695 17.8635 15.696L17.8634 15.6962ZM10.0005 15.6277C9.50937 15.6277 9.11108 15.2297 9.11108 14.7383C9.11108 14.247 9.50937 13.8489 10.0005 13.8489C10.4918 13.8489 10.8899 14.247 10.8899 14.7383C10.8899 15.2297 10.4918 15.6277 10.0005 15.6277ZM10.5341 12.7817C10.5341 13.1374 10.3562 13.3154 10.0005 13.3154C9.64474 13.3154 9.46681 13.1375 9.46681 12.7817L8.93314 7.62324C8.93314 7.08957 9.28887 6.5559 10.0005 6.5559C10.7119 6.5559 11.0678 7.08957 11.0678 7.62324L10.5341 12.7817Z",fill:"currentColor"})]}))},2594:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderJupiter=void 0;const i=r(6070),o=r(972),s=n(r(6766)),a=r(5791),u=r(4918),c=n(r(8709)),l=r(7215),f=r(2518),d=r(758),h=()=>{const e=(0,d.useMemo)((()=>new f.QueryClient),[]),[t]=(0,o.useAtom)(l.appProps);return t?(0,i.jsx)(f.QueryClientProvider,{client:e,children:(0,i.jsx)(a.ContextProvider,Object.assign({},t,{children:(0,i.jsx)(c.default,{children:(0,i.jsx)(u.ScreenProvider,{children:(0,i.jsx)(s.default,Object.assign({},t))})})}))}):null};t.RenderJupiter=()=>(0,i.jsx)(o.Provider,{store:"undefined"!=typeof window?window.Jupiter.store:void 0,children:(0,i.jsx)(h,{})})},1823:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkIsToken2022=t.checkIsUnknownToken=t.checkIsStrictOrVerified=void 0,t.checkIsStrictOrVerified=e=>{var t,r,n;return Boolean((null===(t=e.tags)||void 0===t?void 0:t.includes("verified"))||(null===(r=e.tags)||void 0===r?void 0:r.includes("strict"))||(null===(n=e.tags)||void 0===n?void 0:n.includes("community")))},t.checkIsUnknownToken=e=>!1===(0,t.checkIsStrictOrVerified)(e),t.checkIsToken2022=e=>{var t;return null===(t=e.tags)||void 0===t?void 0:t.includes("token-2022")}},5418:function(e,t,r){"use strict";var n=r(4686).Buffer,i=r(5640),o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.sortByUserBalance=t.isValidSolanaAddress=t.base64ToJson=t.jsonToBase64=t.hasNumericValue=t.useOutsideClick=t.useDebounce=t.detectedSeparator=t.isMobile=t.toLamports=t.fromLamports=t.readableValue=t.shortenAddress=t.formatNumber=t.numberFormatter=void 0;const s=r(3760),a=o(r(3432)),u=r(758),c=r(1823),l="undefined"!=typeof window?navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language:"en-US";t.numberFormatter=new Intl.NumberFormat(l,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:9}),t.formatNumber={format:(e,t)=>{if(!e)return"";const r=(e=>{const t=e.split(".");return t.length>1?t[1].length:0})(e.toString());return new Intl.NumberFormat(l,{maximumFractionDigits:null!=t?t:r}).format(e.toString())}},t.shortenAddress=function(e,t=4){return`${e.slice(0,t)}...${e.slice(-t)}`},t.readableValue=function(e,t){return new a.default(e.toString()).div(Math.pow(10,t)).toDP(t,a.default.ROUND_DOWN).toFixed()},t.fromLamports=function(e,t){return new a.default(e.toString()).div(Math.pow(10,t)).toDP(t,a.default.ROUND_DOWN).toNumber()},t.toLamports=function(e,t){return new a.default(e.toString()).mul(Math.pow(10,t)).floor().toNumber()},t.isMobile=()=>"undefined"!=typeof window&&screen&&screen.width<=480,t.detectedSeparator=t.formatNumber.format("1.1").substring(1,2),t.useDebounce=function(e,t){const[r,n]=(0,u.useState)(e);return(0,u.useEffect)((()=>{const r=setTimeout((()=>{n(e)}),t);return()=>{clearTimeout(r)}}),[e,t]),r},t.useOutsideClick=function(e,t){(0,u.useEffect)((()=>{const r=r=>{e.current&&!e.current.contains(r.target)&&t(r)};return document.addEventListener("mouseup",r),()=>{document.removeEventListener("mouseup",r)}}),[e,t])},t.hasNumericValue=e=>!(!e||Number.isNaN(Number(e))),t.jsonToBase64=function(e){try{const t=JSON.stringify(e);return n.from(t).toString("base64")}catch(e){return i.log(e),null}},t.base64ToJson=function(e){try{const t=n.from(e,"base64").toString();return JSON.parse(t)}catch(e){return i.log(e),null}},t.isValidSolanaAddress=function(e){try{return new s.PublicKey(e),!0}catch(e){return i.error("Invalid Solana address:",e),!1}},t.sortByUserBalance=(e,t)=>{const r=new Map,n=new Map;return Object.entries(t).filter((([e,t])=>t.uiAmount>0)).forEach((([t,i])=>{const o=e.find((e=>e.id===t));if(!o)return;const s=i.uiAmount;r.set(t,s);const u=o.usdPrice||0;if(u){const e=new a.default(s).mul(u);e.greaterThan(0)&&n.set(t,e)}})),(()=>{const t=new Map;return e.forEach((e=>{t.has(e.id)||t.set(e.id,e)})),Array.from(t.values())})().sort(((e,t)=>{var i,o,s,u;const l=n.get(e.id),f=n.get(t.id);if(l&&f){const e=f.cmp(l);if(0!==e)return e}else{if(l&&!f)return-1;if(!l&&f)return 1}const d=r.get(e.id),h=r.get(t.id);if(d&&h){const e=new a.default(h).cmp(d);if(0!==e)return e}else{if(d&&!h)return-1;if(!d&&h)return 1}const p=r.has(e.id),g=r.has(t.id);if(p&&!g)return-1;if(!p&&g)return 1;let m=0,y=0;const v=((null===(i=e.stats24h)||void 0===i?void 0:i.buyVolume)||0)+((null===(o=e.stats24h)||void 0===o?void 0:o.sellVolume)||0),w=((null===(s=t.stats24h)||void 0===s?void 0:s.buyVolume)||0)+((null===(u=t.stats24h)||void 0===u?void 0:u.sellVolume)||0);return v>w&&(m+=1),w>v&&(y+=1),(0,c.checkIsUnknownToken)(e)&&(m-=2),(0,c.checkIsUnknownToken)(t)&&(y-=2),y-m}))}},1767:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.useLstApyFetcher=void 0;const i=r(2518);t.useLstApyFetcher=function(){return(0,i.useQuery)({queryKey:["lst-apy"],queryFn:()=>n(this,void 0,void 0,(function*(){const e=yield fetch("https://worker.jup.ag/lst-apys-v2");return yield e.json()})),retry:3,placeholderData:i.keepPreviousData,staleTime:3e5})}},7162:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.useQuoteQuery=void 0;const i=r(2518),o=r(5587),s=r(1049),a=r(7110);t.useQuoteQuery=(e,t=!0)=>{const{amount:r}=e;return(0,i.useQuery)({queryKey:["quote",e],queryFn:({signal:t})=>n(void 0,void 0,void 0,(function*(){if(0===Number(r))return null;try{let r=e;r.excludeDexes&&r.excludeDexes.length>0&&(r=Object.assign(Object.assign({},e),{excludeRouters:["okx","dflow","hashflow","jupiterz"]}));const n=yield o.ultraSwapService.getQuote(r,t);return{quoteResponse:(0,a.create)(n,s.FormattedUltraQuoteResponse,"conver FormattedUltraQuoteResponse Error"),original:n}}catch(e){if(e instanceof Response)throw(yield e.json()).error;throw e}})),refetchInterval:!!t&&5e3,retry:0,enabled:Number(r)>0,gcTime:0,staleTime:0})}},442:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.useUltraSwapMutation=void 0;const i=r(2518),o=r(5587),s=r(4686),a=r(3760),u=r(8709),c=r(128);var l;!function(e){e.REJECTED="REJECTED",e.FAILED="FAILED",e.WALLET_SIGNING_FAILED="WALLET_SIGNING_FAILED"}(l||(l={}));class f extends Error{constructor(e,t,r){super(e),this.type=t,this.txid=r}}t.useUltraSwapMutation=function(){const{wallet:e,signTransaction:t}=(0,u.useWalletPassThrough)();return(0,i.useMutation)({mutationFn:({setTxStatus:r,setLastSwapResult:i,fromTokenInfo:u,toTokenInfo:c,quoteResponseMeta:d})=>n(this,void 0,void 0,(function*(){const n=null==e?void 0:e.adapter.publicKey;if(!t||!n)throw new f("Wallet not connected, or missing wallet functions",l.WALLET_SIGNING_FAILED);r({txid:"",status:"pending-approval"});const h=d.original,{transaction:p,requestId:g}=h;if(!p)throw new Error("Missing transaction");const m=s.Buffer.from(p,"base64"),y=a.VersionedTransaction.deserialize(new Uint8Array(m)),v=yield t(y),w=s.Buffer.from(v.serialize()).toString("base64");r({txid:"",status:"sending"});const b=yield o.ultraSwapService.submitSwap(w,g),{signature:_,status:x}=b;if("Failed"===x)throw new f(b.error,l.FAILED,_);const{inputAmountResult:S,outputAmountResult:M}=b;return r({txid:_,status:"success"}),i({swapResult:{txid:_,inputAddress:new a.PublicKey(u.id),outputAddress:new a.PublicKey(c.id),inputAmount:Number(S),outputAmount:Number(M)},quoteReponse:d}),_})),onError:(e,t)=>n(this,void 0,void 0,(function*(){const{setTxStatus:r,setLastSwapResult:n,quoteResponseMeta:i}=t,{name:o}=e;if("WalletSignTransactionError"!==o)if(e instanceof Error)n({swapResult:{error:new c.TransactionError(e.message)},quoteReponse:i});else{if("object"==typeof e&&null!==e&&"json"in e){const t=yield e.json();return n({swapResult:{error:new c.TransactionError(t.error||"Unknown error")},quoteReponse:i}),void r({txid:t.txid||"",status:"fail"})}n({swapResult:{error:new c.TransactionError("Unknown error")},quoteReponse:i})}else{const e="Transaction cancelled";n({swapResult:{error:new c.TransactionError(e)},quoteReponse:i})}}))})}},893:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwapMode=void 0,t.SwapMode={ExactInOrOut:"ExactInOrOut",ExactIn:"ExactIn",ExactOut:"ExactOut"}},7417:(e,t,r)=>{"use strict";var n;r.d(t,{v4:()=>l});var i=new Uint8Array(16);function o(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}const s=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var a=[],u=0;u<256;++u)a.push((u+256).toString(16).substr(1));const c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase();if(!function(e){return"string"==typeof e&&s.test(e)}(r))throw TypeError("Stringified UUID is invalid");return r},l=function(e,t,r){var n=(e=e||{}).random||(e.rng||o)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var i=0;i<16;++i)t[r+i]=n[i];return t}return c(n)}},3730:(e,t,r)=>{"use strict";r(5640);e.exports=function(){}},4149:()=>{},4762:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},3658:e=>{function t(e,t,r,n,i,o,s){try{var a=e[o](s),u=a.value}catch(e){return void r(e)}a.done?t(u):Promise.resolve(u).then(n,i)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(i,o){var s=e.apply(r,n);function a(e){t(s,i,o,a,u,"next",e)}function u(e){t(s,i,o,a,u,"throw",e)}a(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},2288:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},3822:(e,t,r)=>{var n=r(5885);function i(e,t){for(var r=0;r{function t(r){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},7152:(e,t,r)=>{var n=r(8223);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&n(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},6579:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},2349:(e,t,r)=>{var n=r(5545).default,i=r(4762);e.exports=function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return i(e)},e.exports.__esModule=!0,e.exports.default=e.exports},1770:(e,t,r)=>{var n=r(5545).default;function i(){"use strict";e.exports=i=function(){return r},e.exports.__esModule=!0,e.exports.default=e.exports;var t,r={},o=Object.prototype,s=o.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",f=u.toStringTag||"@@toStringTag";function d(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(t){d=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=t&&t.prototype instanceof b?t:b,o=Object.create(i.prototype),s=new T(n||[]);return a(o,"_invoke",{value:A(e,r,s)}),o}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=h;var g="suspendedStart",m="suspendedYield",y="executing",v="completed",w={};function b(){}function _(){}function x(){}var S={};d(S,c,(function(){return this}));var M=Object.getPrototypeOf,k=M&&M(M(P([])));k&&k!==o&&s.call(k,c)&&(S=k);var O=x.prototype=b.prototype=Object.create(S);function E(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function r(i,o,a,u){var c=p(e[i],e,o);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==n(f)&&s.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,u)}),(function(e){r("throw",e,a,u)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return r("throw",e,a,u)}))}u(c.arg)}var i;a(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,i){r(e,n,t,i)}))}return i=i?i.then(o,o):o()}})}function A(e,r,n){var i=g;return function(o,s){if(i===y)throw new Error("Generator is already running");if(i===v){if("throw"===o)throw s;return{value:t,done:!0}}for(n.method=o,n.arg=s;;){var a=n.delegate;if(a){var u=C(a,n);if(u){if(u===w)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===g)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=y;var c=p(e,r,n);if("normal"===c.type){if(i=n.done?v:m,c.arg===w)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=v,n.method="throw",n.arg=c.arg)}}}function C(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,C(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),w;var o=p(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,w;var s=o.arg;return s?s.done?(r[e.resultName]=s.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,w):s:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,w)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function P(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=s.call(o,"catchLoc"),c=s.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),N(r),w}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;N(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:P(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),w}},r}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},8223:e=>{function t(r,n){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},6880:(e,t,r)=>{var n=r(5545).default;e.exports=function(e,t){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!==n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},5885:(e,t,r)=>{var n=r(5545).default,i=r(6880);e.exports=function(e){var t=i(e,"string");return"symbol"===n(t)?t:String(t)},e.exports.__esModule=!0,e.exports.default=e.exports},5545:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},121:(e,t,r)=>{var n=r(1770)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},3528:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{FocusManager:()=>f,focusManager:()=>d}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3174),l=r(9712),f=class extends c.Subscribable{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!l.isServer&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e((e=>{"boolean"==typeof e?this.setFocused(e):this.onFocus()}))}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach((t=>{t(e)}))}isFocused(){return"boolean"==typeof this.#e?this.#e:"hidden"!==globalThis.document?.visibilityState}},d=new f},1733:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{defaultShouldDehydrateMutation:()=>h,defaultShouldDehydrateQuery:()=>p,dehydrate:()=>m,hydrate:()=>y}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9916);function l(e){return e}function f(e){return{mutationKey:e.options.mutationKey,state:e.state,...e.options.scope&&{scope:e.options.scope},...e.meta&&{meta:e.meta}}}function d(e,t,r){return{dehydratedAt:Date.now(),state:{...e.state,...void 0!==e.state.data&&{data:t(e.state.data)}},queryKey:e.queryKey,queryHash:e.queryHash,..."pending"===e.state.status&&{promise:e.promise?.then(t).catch((e=>r(e)?Promise.reject(new Error("redacted")):Promise.reject(e)))},...e.meta&&{meta:e.meta}}}function h(e){return e.state.isPaused}function p(e){return"success"===e.state.status}function g(e){return!0}function m(e,t={}){const r=t.shouldDehydrateMutation??e.getDefaultOptions().dehydrate?.shouldDehydrateMutation??h,n=e.getMutationCache().getAll().flatMap((e=>r(e)?[f(e)]:[])),i=t.shouldDehydrateQuery??e.getDefaultOptions().dehydrate?.shouldDehydrateQuery??p,o=t.shouldRedactErrors??e.getDefaultOptions().dehydrate?.shouldRedactErrors??g,s=t.serializeData??e.getDefaultOptions().dehydrate?.serializeData??l;return{mutations:n,queries:e.getQueryCache().getAll().flatMap((e=>i(e)?[d(e,s,o)]:[]))}}function y(e,t,r){if("object"!=typeof t||null===t)return;const n=e.getMutationCache(),i=e.getQueryCache(),o=r?.defaultOptions?.deserializeData??e.getDefaultOptions().hydrate?.deserializeData??l,s=t.mutations||[],a=t.queries||[];s.forEach((({state:t,...i})=>{n.build(e,{...e.getDefaultOptions().hydrate?.mutations,...r?.defaultOptions?.mutations,...i},t)})),a.forEach((({queryKey:t,state:n,queryHash:s,meta:a,promise:u,dehydratedAt:l})=>{const f=u?(0,c.tryResolveSync)(u):void 0,d=void 0===n.data?f?.data:n.data,h=void 0===d?d:o(d);let p=i.get(s);const g="pending"===p?.state.status,m="fetching"===p?.state.fetchStatus;if(p){const e=f&&void 0!==l&&l>p.state.dataUpdatedAt;if(n.dataUpdatedAt>p.state.dataUpdatedAt||e){const{fetchStatus:e,...t}=n;p.setState({...t,data:h})}}else p=i.build(e,{...e.getDefaultOptions().hydrate?.queries,...r?.defaultOptions?.queries,queryKey:t,queryHash:s,meta:a},{...n,data:h,fetchStatus:"idle",status:void 0!==h?"success":n.status});u&&!g&&!m&&(void 0===l||l>p.state.dataUpdatedAt)&&p.fetch(void 0,{initialPromise:Promise.resolve(u).then(o)})}))}},9975:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let u of s(t))a.call(e,u)||u===r||i(e,u,{get:()=>t[u],enumerable:!(n=o(t,u))||n.enumerable});return e},c={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(c,{CancelledError:()=>l.CancelledError,InfiniteQueryObserver:()=>g.InfiniteQueryObserver,Mutation:()=>O.Mutation,MutationCache:()=>m.MutationCache,MutationObserver:()=>y.MutationObserver,QueriesObserver:()=>p.QueriesObserver,Query:()=>k.Query,QueryCache:()=>f.QueryCache,QueryClient:()=>d.QueryClient,QueryObserver:()=>h.QueryObserver,defaultScheduler:()=>v.defaultScheduler,defaultShouldDehydrateMutation:()=>S.defaultShouldDehydrateMutation,defaultShouldDehydrateQuery:()=>S.defaultShouldDehydrateQuery,dehydrate:()=>S.dehydrate,experimental_streamedQuery:()=>M.streamedQuery,focusManager:()=>w.focusManager,hashKey:()=>_.hashKey,hydrate:()=>S.hydrate,isCancelledError:()=>x.isCancelledError,isServer:()=>_.isServer,keepPreviousData:()=>_.keepPreviousData,matchMutation:()=>_.matchMutation,matchQuery:()=>_.matchQuery,noop:()=>_.noop,notifyManager:()=>v.notifyManager,onlineManager:()=>b.onlineManager,partialMatchKey:()=>_.partialMatchKey,replaceEqualDeep:()=>_.replaceEqualDeep,shouldThrowError:()=>_.shouldThrowError,skipToken:()=>_.skipToken}),e.exports=(n=c,u(i({},"__esModule",{value:!0}),n));var l=r(7084),f=r(2967),d=r(9874),h=r(2229),p=r(4249),g=r(3545),m=r(1194),y=r(9210),v=r(3395),w=r(3528),b=r(4885),_=r(9712),x=r(7084),S=r(1733),M=r(4086);((e,t,r)=>{u(e,t,"default"),r&&u(r,t,"default")})(c,r(1940),e.exports);var k=r(5767),O=r(644)},1713:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{hasNextPage:()=>h,hasPreviousPage:()=>p,infiniteQueryBehavior:()=>l}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712);function l(e){return{onFetch:(t,r)=>{const n=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,o=t.state.data?.pages||[],s=t.state.data?.pageParams||[];let a={pages:[],pageParams:[]},u=0;const l=async()=>{let r=!1;const l=(0,c.ensureQueryFn)(t.options,t.fetchOptions),h=async(e,n,i)=>{if(r)return Promise.reject();if(null==n&&e.pages.length)return Promise.resolve(e);const o=(()=>{const e={client:t.client,queryKey:t.queryKey,pageParam:n,direction:i?"backward":"forward",meta:t.options.meta};var o;return o=e,Object.defineProperty(o,"signal",{enumerable:!0,get:()=>(t.signal.aborted?r=!0:t.signal.addEventListener("abort",(()=>{r=!0})),t.signal)}),e})(),s=await l(o),{maxPages:a}=t.options,u=i?c.addToStart:c.addToEnd;return{pages:u(e.pages,s,a),pageParams:u(e.pageParams,n,a)}};if(i&&o.length){const e="backward"===i,t={pages:o,pageParams:s},r=(e?d:f)(n,t);a=await h(t,r,e)}else{const t=e??o.length;do{const e=0===u?s[0]??n.initialPageParam:f(n,a);if(u>0&&null==e)break;a=await h(a,e),u++}while(ut.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=l}}}function f(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function d(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}function h(e,t){return!!t&&null!=f(e,t)}function p(e,t){return!(!t||!e.getPreviousPageParam)&&null!=d(e,t)}},3545:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{InfiniteQueryObserver:()=>f}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(2229),l=r(1713),f=class extends c.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:(0,l.infiniteQueryBehavior)()})}getOptimisticResult(e){return e.behavior=(0,l.infiniteQueryBehavior)(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){const{state:r}=e,n=super.createResult(e,t),{isFetching:i,isRefetching:o,isError:s,isRefetchError:a}=n,u=r.fetchMeta?.fetchMore?.direction,c=s&&"forward"===u,f=i&&"forward"===u,d=s&&"backward"===u,h=i&&"backward"===u;return{...n,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,l.hasNextPage)(t,r.data),hasPreviousPage:(0,l.hasPreviousPage)(t,r.data),isFetchNextPageError:c,isFetchingNextPage:f,isFetchPreviousPageError:d,isFetchingPreviousPage:h,isRefetchError:a&&!c&&!d,isRefetching:o&&!f&&!h}}}},644:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{Mutation:()=>d,getDefaultState:()=>h}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3395),l=r(836),f=r(7084),d=class extends l.Removable{#n;#i;#o;constructor(e){super(),this.mutationId=e.mutationId,this.#i=e.mutationCache,this.#n=[],this.state=e.state||{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0},this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#n.includes(e)||(this.#n.push(e),this.clearGcTimeout(),this.#i.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#n=this.#n.filter((t=>t!==e)),this.scheduleGc(),this.#i.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#n.length||("pending"===this.state.status?this.scheduleGc():this.#i.remove(this))}continue(){return this.#o?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>{this.#s({type:"continue"})};this.#o=(0,f.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(e,t)=>{this.#s({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#s({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#i.canRun(this)});const r="pending"===this.state.status,n=!this.#o.canStart();try{if(r)t();else{this.#s({type:"pending",variables:e,isPaused:n}),await(this.#i.config.onMutate?.(e,this));const t=await(this.options.onMutate?.(e));t!==this.state.context&&this.#s({type:"pending",context:t,variables:e,isPaused:n})}const i=await this.#o.start();return await(this.#i.config.onSuccess?.(i,e,this.state.context,this)),await(this.options.onSuccess?.(i,e,this.state.context)),await(this.#i.config.onSettled?.(i,null,this.state.variables,this.state.context,this)),await(this.options.onSettled?.(i,null,e,this.state.context)),this.#s({type:"success",data:i}),i}catch(t){try{throw await(this.#i.config.onError?.(t,e,this.state.context,this)),await(this.options.onError?.(t,e,this.state.context)),await(this.#i.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this)),await(this.options.onSettled?.(void 0,t,e,this.state.context)),t}finally{this.#s({type:"error",error:t})}}finally{this.#i.runNext(this)}}#s(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),c.notifyManager.batch((()=>{this.#n.forEach((t=>{t.onMutationUpdate(e)})),this.#i.notify({mutation:this,type:"updated",action:e})}))}};function h(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},1194:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{MutationCache:()=>h}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3395),l=r(644),f=r(9712),d=r(3174),h=class extends d.Subscribable{constructor(e={}){super(),this.config=e,this.#a=new Set,this.#u=new Map,this.#c=0}#a;#u;#c;build(e,t,r){const n=new l.Mutation({mutationCache:this,mutationId:++this.#c,options:e.defaultMutationOptions(t),state:r});return this.add(n),n}add(e){this.#a.add(e);const t=p(e);if("string"==typeof t){const r=this.#u.get(t);r?r.push(e):this.#u.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#a.delete(e)){const t=p(e);if("string"==typeof t){const r=this.#u.get(t);if(r)if(r.length>1){const t=r.indexOf(e);-1!==t&&r.splice(t,1)}else r[0]===e&&this.#u.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=p(e);if("string"==typeof t){const r=this.#u.get(t),n=r?.find((e=>"pending"===e.state.status));return!n||n===e}return!0}runNext(e){const t=p(e);if("string"==typeof t){const r=this.#u.get(t)?.find((t=>t!==e&&t.state.isPaused));return r?.continue()??Promise.resolve()}return Promise.resolve()}clear(){c.notifyManager.batch((()=>{this.#a.forEach((e=>{this.notify({type:"removed",mutation:e})})),this.#a.clear(),this.#u.clear()}))}getAll(){return Array.from(this.#a)}find(e){const t={exact:!0,...e};return this.getAll().find((e=>(0,f.matchMutation)(t,e)))}findAll(e={}){return this.getAll().filter((t=>(0,f.matchMutation)(e,t)))}notify(e){c.notifyManager.batch((()=>{this.listeners.forEach((t=>{t(e)}))}))}resumePausedMutations(){const e=this.getAll().filter((e=>e.state.isPaused));return c.notifyManager.batch((()=>Promise.all(e.map((e=>e.continue().catch(f.noop))))))}};function p(e){return e.options.scope?.id}},9210:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{MutationObserver:()=>h}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(644),l=r(3395),f=r(3174),d=r(9712),h=class extends f.Subscribable{#l;#f=void 0;#d;#h;constructor(e,t){super(),this.#l=e,this.setOptions(t),this.bindMethods(),this.#p()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){const t=this.options;this.options=this.#l.defaultMutationOptions(e),(0,d.shallowEqualObjects)(this.options,t)||this.#l.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#d,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,d.hashKey)(t.mutationKey)!==(0,d.hashKey)(this.options.mutationKey)?this.reset():"pending"===this.#d?.state.status&&this.#d.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#d?.removeObserver(this)}onMutationUpdate(e){this.#p(),this.#g(e)}getCurrentResult(){return this.#f}reset(){this.#d?.removeObserver(this),this.#d=void 0,this.#p(),this.#g()}mutate(e,t){return this.#h=t,this.#d?.removeObserver(this),this.#d=this.#l.getMutationCache().build(this.#l,this.options),this.#d.addObserver(this),this.#d.execute(e)}#p(){const e=this.#d?.state??(0,c.getDefaultState)();this.#f={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#g(e){l.notifyManager.batch((()=>{if(this.#h&&this.hasListeners()){const t=this.#f.variables,r=this.#f.context;"success"===e?.type?(this.#h.onSuccess?.(e.data,t,r),this.#h.onSettled?.(e.data,null,t,r)):"error"===e?.type&&(this.#h.onError?.(e.error,t,r),this.#h.onSettled?.(void 0,e.error,t,r))}this.listeners.forEach((e=>{e(this.#f)}))}))}}},3395:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{createNotifyManager:()=>u,defaultScheduler:()=>a,notifyManager:()=>c}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));var a=e=>setTimeout(e,0);function u(){let e=[],t=0,r=e=>{e()},n=e=>{e()},i=a;const o=n=>{t?e.push(n):i((()=>{r(n)}))};return{batch:o=>{let s;t++;try{s=o()}finally{t--,t||(()=>{const t=e;e=[],t.length&&i((()=>{n((()=>{t.forEach((e=>{r(e)}))}))}))})()}return s},batchCalls:e=>(...t)=>{o((()=>{e(...t)}))},schedule:o,setNotifyFunction:e=>{r=e},setBatchNotifyFunction:e=>{n=e},setScheduler:e=>{i=e}}}var c=u()},4885:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{OnlineManager:()=>f,onlineManager:()=>d}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3174),l=r(9712),f=class extends c.Subscribable{#m=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!l.isServer&&window.addEventListener){const t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#m!==e&&(this.#m=e,this.listeners.forEach((t=>{t(e)})))}isOnline(){return this.#m}},d=new f},4249:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{QueriesObserver:()=>p}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3395),l=r(2229),f=r(3174),d=r(9712);function h(e,t){const r=new Set(t);return e.filter((e=>!r.has(e)))}var p=class extends f.Subscribable{#l;#y;#v;#w;#n;#b;#_;#x;#S=[];constructor(e,t,r){super(),this.#l=e,this.#w=r,this.#v=[],this.#n=[],this.#y=[],this.setQueries(t)}onSubscribe(){1===this.listeners.size&&this.#n.forEach((e=>{e.subscribe((t=>{this.#M(e,t)}))}))}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#n.forEach((e=>{e.destroy()}))}setQueries(e,t){this.#v=e,this.#w=t,c.notifyManager.batch((()=>{const e=this.#n,t=this.#k(this.#v);this.#S=t,t.forEach((e=>e.observer.setOptions(e.defaultedQueryOptions)));const r=t.map((e=>e.observer)),n=r.map((e=>e.getCurrentResult())),i=r.some(((t,r)=>t!==e[r]));(e.length!==r.length||i)&&(this.#n=r,this.#y=n,this.hasListeners()&&(h(e,r).forEach((e=>{e.destroy()})),h(r,e).forEach((e=>{e.subscribe((t=>{this.#M(e,t)}))})),this.#g()))}))}getCurrentResult(){return this.#y}getQueries(){return this.#n.map((e=>e.getCurrentQuery()))}getObservers(){return this.#n}getOptimisticResult(e,t){const r=this.#k(e),n=r.map((e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)));return[n,e=>this.#O(e??n,t),()=>this.#E(n,r)]}#E(e,t){return t.map(((r,n)=>{const i=e[n];return r.defaultedQueryOptions.notifyOnChangeProps?i:r.observer.trackResult(i,(e=>{t.forEach((t=>{t.observer.trackProp(e)}))}))}))}#O(e,t){return t?(this.#b&&this.#y===this.#x&&t===this.#_||(this.#_=t,this.#x=this.#y,this.#b=(0,d.replaceEqualDeep)(this.#b,t(e))),this.#b):e}#k(e){const t=new Map(this.#n.map((e=>[e.options.queryHash,e]))),r=[];return e.forEach((e=>{const n=this.#l.defaultQueryOptions(e),i=t.get(n.queryHash);i?r.push({defaultedQueryOptions:n,observer:i}):r.push({defaultedQueryOptions:n,observer:new l.QueryObserver(this.#l,n)})})),r}#M(e,t){const r=this.#n.indexOf(e);-1!==r&&(this.#y=function(e,t,r){const n=e.slice(0);return n[t]=r,n}(this.#y,r,t),this.#g())}#g(){if(this.hasListeners()){const e=this.#b,t=this.#E(this.#y,this.#S);e!==this.#O(t,this.#w?.combine)&&c.notifyManager.batch((()=>{this.listeners.forEach((e=>{e(this.#y)}))}))}}}},5767:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{Query:()=>h,fetchState:()=>p}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712),l=r(3395),f=r(7084),d=r(836),h=class extends d.Removable{#I;#A;#C;#l;#o;#j;#N;constructor(e){super(),this.#N=!1,this.#j=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#l=e.client,this.#C=this.#l.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#I=function(e){const t="function"==typeof e.initialData?e.initialData():e.initialData,r=void 0!==t,n=r?"function"==typeof e.initialDataUpdatedAt?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}(this.options),this.state=e.state??this.#I,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#o?.promise}setOptions(e){this.options={...this.#j,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#C.remove(this)}setData(e,t){const r=(0,c.replaceData)(this.state.data,e,this.options);return this.#s({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#s({type:"setState",state:e,setStateOptions:t})}cancel(e){const t=this.#o?.promise;return this.#o?.cancel(e),t?t.then(c.noop).catch(c.noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#I)}isActive(){return this.observers.some((e=>!1!==(0,c.resolveEnabled)(e.options.enabled,this)))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===c.skipToken||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0&&this.observers.some((e=>"static"===(0,c.resolveStaleTime)(e.options.staleTime,this)))}isStale(){return this.getObserversCount()>0?this.observers.some((e=>e.getCurrentResult().isStale)):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(e=0){return void 0===this.state.data||"static"!==e&&(!!this.state.isInvalidated||!(0,c.timeUntilStale)(this.state.dataUpdatedAt,e))}onFocus(){const e=this.observers.find((e=>e.shouldFetchOnWindowFocus()));e?.refetch({cancelRefetch:!1}),this.#o?.continue()}onOnline(){const e=this.observers.find((e=>e.shouldFetchOnReconnect()));e?.refetch({cancelRefetch:!1}),this.#o?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#C.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter((t=>t!==e)),this.observers.length||(this.#o&&(this.#N?this.#o.cancel({revert:!0}):this.#o.cancelRetry()),this.scheduleGc()),this.#C.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#s({type:"invalidate"})}async fetch(e,t){if("idle"!==this.state.fetchStatus&&"rejected"!==this.#o?.status())if(void 0!==this.state.data&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#o)return this.#o.continueRetry(),this.#o.promise;if(e&&this.setOptions(e),!this.options.queryFn){const e=this.observers.find((e=>e.options.queryFn));e&&this.setOptions(e.options)}const r=new AbortController,n=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#N=!0,r.signal)})},i=()=>{const e=(0,c.ensureQueryFn)(this.options,t),r=(()=>{const e={client:this.#l,queryKey:this.queryKey,meta:this.meta};return n(e),e})();return this.#N=!1,this.options.persister?this.options.persister(e,r,this):e(r)},o=(()=>{const e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#l,state:this.state,fetchFn:i};return n(e),e})();this.options.behavior?.onFetch(o,this),this.#A=this.state,"idle"!==this.state.fetchStatus&&this.state.fetchMeta===o.fetchOptions?.meta||this.#s({type:"fetch",meta:o.fetchOptions?.meta}),this.#o=(0,f.createRetryer)({initialPromise:t?.initialPromise,fn:o.fetchFn,abort:r.abort.bind(r),onFail:(e,t)=>{this.#s({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#s({type:"pause"})},onContinue:()=>{this.#s({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0});try{const e=await this.#o.start();if(void 0===e)throw new Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#C.config.onSuccess?.(e,this),this.#C.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof f.CancelledError){if(e.silent)return this.#o.promise;if(e.revert){if(this.setState({...this.#A,fetchStatus:"idle"}),void 0===this.state.data)throw e;return this.state.data}}throw this.#s({type:"error",error:e}),this.#C.config.onError?.(e,this),this.#C.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#s(e){this.state=(t=>{switch(e.type){case"failed":return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...t,fetchStatus:"paused"};case"continue":return{...t,fetchStatus:"fetching"};case"fetch":return{...t,...p(t.data,this.options),fetchMeta:e.meta??null};case"success":const r={...t,data:e.data,dataUpdateCount:t.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#A=e.manual?r:void 0,r;case"error":const n=e.error;return{...t,error:n,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...t,isInvalidated:!0};case"setState":return{...t,...e.state}}})(this.state),l.notifyManager.batch((()=>{this.observers.forEach((e=>{e.onQueryUpdate()})),this.#C.notify({query:this,type:"updated",action:e})}))}};function p(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:(0,f.canFetch)(t.networkMode)?"fetching":"paused",...void 0===e&&{error:null,status:"pending"}}}},2967:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{QueryCache:()=>h}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712),l=r(5767),f=r(3395),d=r(3174),h=class extends d.Subscribable{constructor(e={}){super(),this.config=e,this.#v=new Map}#v;build(e,t,r){const n=t.queryKey,i=t.queryHash??(0,c.hashQueryKeyByOptions)(n,t);let o=this.get(i);return o||(o=new l.Query({client:e,queryKey:n,queryHash:i,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(n)}),this.add(o)),o}add(e){this.#v.has(e.queryHash)||(this.#v.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#v.get(e.queryHash);t&&(e.destroy(),t===e&&this.#v.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){f.notifyManager.batch((()=>{this.getAll().forEach((e=>{this.remove(e)}))}))}get(e){return this.#v.get(e)}getAll(){return[...this.#v.values()]}find(e){const t={exact:!0,...e};return this.getAll().find((e=>(0,c.matchQuery)(t,e)))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter((t=>(0,c.matchQuery)(e,t))):t}notify(e){f.notifyManager.batch((()=>{this.listeners.forEach((t=>{t(e)}))}))}onFocus(){f.notifyManager.batch((()=>{this.getAll().forEach((e=>{e.onFocus()}))}))}onOnline(){f.notifyManager.batch((()=>{this.getAll().forEach((e=>{e.onOnline()}))}))}}},9874:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{QueryClient:()=>m}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712),l=r(2967),f=r(1194),d=r(3528),h=r(4885),p=r(3395),g=r(1713),m=class{#T;#i;#j;#P;#R;#D;#L;#B;constructor(e={}){this.#T=e.queryCache||new l.QueryCache,this.#i=e.mutationCache||new f.MutationCache,this.#j=e.defaultOptions||{},this.#P=new Map,this.#R=new Map,this.#D=0}mount(){this.#D++,1===this.#D&&(this.#L=d.focusManager.subscribe((async e=>{e&&(await this.resumePausedMutations(),this.#T.onFocus())})),this.#B=h.onlineManager.subscribe((async e=>{e&&(await this.resumePausedMutations(),this.#T.onOnline())})))}unmount(){this.#D--,0===this.#D&&(this.#L?.(),this.#L=void 0,this.#B?.(),this.#B=void 0)}isFetching(e){return this.#T.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#i.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#T.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=this.#T.build(this,t),n=r.state.data;return void 0===n?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime((0,c.resolveStaleTime)(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#T.findAll(e).map((({queryKey:e,state:t})=>[e,t.data]))}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),i=this.#T.get(n.queryHash),o=i?.state.data,s=(0,c.functionalUpdate)(t,o);if(void 0!==s)return this.#T.build(this,n).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return p.notifyManager.batch((()=>this.#T.findAll(e).map((({queryKey:e})=>[e,this.setQueryData(e,t,r)]))))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#T.get(t.queryHash)?.state}removeQueries(e){const t=this.#T;p.notifyManager.batch((()=>{t.findAll(e).forEach((e=>{t.remove(e)}))}))}resetQueries(e,t){const r=this.#T;return p.notifyManager.batch((()=>(r.findAll(e).forEach((e=>{e.reset()})),this.refetchQueries({type:"active",...e},t))))}cancelQueries(e,t={}){const r={revert:!0,...t},n=p.notifyManager.batch((()=>this.#T.findAll(e).map((e=>e.cancel(r)))));return Promise.all(n).then(c.noop).catch(c.noop)}invalidateQueries(e,t={}){return p.notifyManager.batch((()=>(this.#T.findAll(e).forEach((e=>{e.invalidate()})),"none"===e?.refetchType?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=p.notifyManager.batch((()=>this.#T.findAll(e).filter((e=>!e.isDisabled()&&!e.isStatic())).map((e=>{let t=e.fetch(void 0,r);return r.throwOnError||(t=t.catch(c.noop)),"paused"===e.state.fetchStatus?Promise.resolve():t}))));return Promise.all(n).then(c.noop)}fetchQuery(e){const t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);const r=this.#T.build(this,t);return r.isStaleByTime((0,c.resolveStaleTime)(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(c.noop).catch(c.noop)}fetchInfiniteQuery(e){return e.behavior=(0,g.infiniteQueryBehavior)(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(c.noop).catch(c.noop)}ensureInfiniteQueryData(e){return e.behavior=(0,g.infiniteQueryBehavior)(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return h.onlineManager.isOnline()?this.#i.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#T}getMutationCache(){return this.#i}getDefaultOptions(){return this.#j}setDefaultOptions(e){this.#j=e}setQueryDefaults(e,t){this.#P.set((0,c.hashKey)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#P.values()],r={};return t.forEach((t=>{(0,c.partialMatchKey)(e,t.queryKey)&&Object.assign(r,t.defaultOptions)})),r}setMutationDefaults(e,t){this.#R.set((0,c.hashKey)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#R.values()],r={};return t.forEach((t=>{(0,c.partialMatchKey)(e,t.mutationKey)&&Object.assign(r,t.defaultOptions)})),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#j.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,c.hashQueryKeyByOptions)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===c.skipToken&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#j.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#T.clear(),this.#i.clear()}}},2229:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{QueryObserver:()=>g}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3528),l=r(3395),f=r(5767),d=r(3174),h=r(9916),p=r(9712),g=class extends d.Subscribable{constructor(e,t){super(),this.options=t,this.#l=e,this.#z=null,this.#U=(0,h.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#l;#W=void 0;#F=void 0;#f=void 0;#q;#H;#U;#z;#K;#Q;#V;#$;#Y;#G;#Z=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#W.addObserver(this),m(this.#W,this.options)?this.#J():this.updateResult(),this.#X())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return y(this.#W,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return y(this.#W,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#ee(),this.#te(),this.#W.removeObserver(this)}setOptions(e){const t=this.options,r=this.#W;if(this.options=this.#l.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,p.resolveEnabled)(this.options.enabled,this.#W))throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#re(),this.#W.setOptions(this.options),t._defaulted&&!(0,p.shallowEqualObjects)(this.options,t)&&this.#l.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#W,observer:this});const n=this.hasListeners();n&&v(this.#W,r,this.options,t)&&this.#J(),this.updateResult(),!n||this.#W===r&&(0,p.resolveEnabled)(this.options.enabled,this.#W)===(0,p.resolveEnabled)(t.enabled,this.#W)&&(0,p.resolveStaleTime)(this.options.staleTime,this.#W)===(0,p.resolveStaleTime)(t.staleTime,this.#W)||this.#ne();const i=this.#ie();!n||this.#W===r&&(0,p.resolveEnabled)(this.options.enabled,this.#W)===(0,p.resolveEnabled)(t.enabled,this.#W)&&i===this.#G||this.#oe(i)}getOptimisticResult(e){const t=this.#l.getQueryCache().build(this.#l,e),r=this.createResult(t,e);return n=this,i=r,!(0,p.shallowEqualObjects)(n.getCurrentResult(),i)&&(this.#f=r,this.#H=this.options,this.#q=this.#W.state),r;var n,i}getCurrentResult(){return this.#f}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"!==r||this.options.experimental_prefetchInRender||"pending"!==this.#U.status||this.#U.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(e,r))})}trackProp(e){this.#Z.add(e)}getCurrentQuery(){return this.#W}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const t=this.#l.defaultQueryOptions(e),r=this.#l.getQueryCache().build(this.#l,t);return r.fetch().then((()=>this.createResult(r,t)))}fetch(e){return this.#J({...e,cancelRefetch:e.cancelRefetch??!0}).then((()=>(this.updateResult(),this.#f)))}#J(e){this.#re();let t=this.#W.fetch(this.options,e);return e?.throwOnError||(t=t.catch(p.noop)),t}#ne(){this.#ee();const e=(0,p.resolveStaleTime)(this.options.staleTime,this.#W);if(p.isServer||this.#f.isStale||!(0,p.isValidTimeout)(e))return;const t=(0,p.timeUntilStale)(this.#f.dataUpdatedAt,e)+1;this.#$=setTimeout((()=>{this.#f.isStale||this.updateResult()}),t)}#ie(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#W):this.options.refetchInterval)??!1}#oe(e){this.#te(),this.#G=e,!p.isServer&&!1!==(0,p.resolveEnabled)(this.options.enabled,this.#W)&&(0,p.isValidTimeout)(this.#G)&&0!==this.#G&&(this.#Y=setInterval((()=>{(this.options.refetchIntervalInBackground||c.focusManager.isFocused())&&this.#J()}),this.#G))}#X(){this.#ne(),this.#oe(this.#ie())}#ee(){this.#$&&(clearTimeout(this.#$),this.#$=void 0)}#te(){this.#Y&&(clearInterval(this.#Y),this.#Y=void 0)}createResult(e,t){const r=this.#W,n=this.options,i=this.#f,o=this.#q,s=this.#H,a=e!==r?e.state:this.#F,{state:u}=e;let c,l={...u},d=!1;if(t._optimisticResults){const i=this.hasListeners(),o=!i&&m(e,t),s=i&&v(e,r,t,n);(o||s)&&(l={...l,...(0,f.fetchState)(u.data,e.options)}),"isRestoring"===t._optimisticResults&&(l.fetchStatus="idle")}let{error:g,errorUpdatedAt:y,status:b}=l;c=l.data;let _=!1;if(void 0!==t.placeholderData&&void 0===c&&"pending"===b){let e;i?.isPlaceholderData&&t.placeholderData===s?.placeholderData?(e=i.data,_=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#V?.state.data,this.#V):t.placeholderData,void 0!==e&&(b="success",c=(0,p.replaceData)(i?.data,e,t),d=!0)}if(t.select&&void 0!==c&&!_)if(i&&c===o?.data&&t.select===this.#K)c=this.#Q;else try{this.#K=t.select,c=t.select(c),c=(0,p.replaceData)(i?.data,c,t),this.#Q=c,this.#z=null}catch(e){this.#z=e}this.#z&&(g=this.#z,c=this.#Q,y=Date.now(),b="error");const x="fetching"===l.fetchStatus,S="pending"===b,M="error"===b,k=S&&x,O=void 0!==c,E={status:b,fetchStatus:l.fetchStatus,isPending:S,isSuccess:"success"===b,isError:M,isInitialLoading:k,isLoading:k,data:c,dataUpdatedAt:l.dataUpdatedAt,error:g,errorUpdatedAt:y,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>a.dataUpdateCount||l.errorUpdateCount>a.errorUpdateCount,isFetching:x,isRefetching:x&&!S,isLoadingError:M&&!O,isPaused:"paused"===l.fetchStatus,isPlaceholderData:d,isRefetchError:M&&O,isStale:w(e,t),refetch:this.refetch,promise:this.#U,isEnabled:!1!==(0,p.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){const t=e=>{"error"===E.status?e.reject(E.error):void 0!==E.data&&e.resolve(E.data)},n=()=>{const e=this.#U=E.promise=(0,h.pendingThenable)();t(e)},i=this.#U;switch(i.status){case"pending":e.queryHash===r.queryHash&&t(i);break;case"fulfilled":"error"!==E.status&&E.data===i.value||n();break;case"rejected":"error"===E.status&&E.error===i.reason||n()}}return E}updateResult(){const e=this.#f,t=this.createResult(this.#W,this.options);this.#q=this.#W.state,this.#H=this.options,void 0!==this.#q.data&&(this.#V=this.#W),(0,p.shallowEqualObjects)(t,e)||(this.#f=t,this.#g({listeners:(()=>{if(!e)return!0;const{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#Z.size)return!0;const n=new Set(r??this.#Z);return this.options.throwOnError&&n.add("error"),Object.keys(this.#f).some((t=>{const r=t;return this.#f[r]!==e[r]&&n.has(r)}))})()}))}#re(){const e=this.#l.getQueryCache().build(this.#l,this.options);if(e===this.#W)return;const t=this.#W;this.#W=e,this.#F=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#X()}#g(e){l.notifyManager.batch((()=>{e.listeners&&this.listeners.forEach((e=>{e(this.#f)})),this.#l.getQueryCache().notify({query:this.#W,type:"observerResultsUpdated"})}))}};function m(e,t){return function(e,t){return!1!==(0,p.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&!("error"===e.state.status&&!1===t.retryOnMount)}(e,t)||void 0!==e.state.data&&y(e,t,t.refetchOnMount)}function y(e,t,r){if(!1!==(0,p.resolveEnabled)(t.enabled,e)&&"static"!==(0,p.resolveStaleTime)(t.staleTime,e)){const n="function"==typeof r?r(e):r;return"always"===n||!1!==n&&w(e,t)}return!1}function v(e,t,r,n){return(e!==t||!1===(0,p.resolveEnabled)(n.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&w(e,r)}function w(e,t){return!1!==(0,p.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,p.resolveStaleTime)(t.staleTime,e))}},836:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{Removable:()=>l}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712),l=class{#se;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,c.isValidTimeout)(this.gcTime)&&(this.#se=setTimeout((()=>{this.optionalRemove()}),this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(c.isServer?1/0:3e5))}clearGcTimeout(){this.#se&&(clearTimeout(this.#se),this.#se=void 0)}}},7084:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{CancelledError:()=>g,canFetch:()=>p,createRetryer:()=>y,isCancelledError:()=>m}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(3528),l=r(4885),f=r(9916),d=r(9712);function h(e){return Math.min(1e3*2**e,3e4)}function p(e){return"online"!==(e??"online")||l.onlineManager.isOnline()}var g=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function m(e){return e instanceof g}function y(e){let t,r=!1,n=0;const i=(0,f.pendingThenable)(),o=()=>"pending"!==i.status,s=()=>c.focusManager.isFocused()&&("always"===e.networkMode||l.onlineManager.isOnline())&&e.canRun(),a=()=>p(e.networkMode)&&e.canRun(),u=e=>{o()||(t?.(),i.resolve(e))},m=e=>{o()||(t?.(),i.reject(e))},y=()=>new Promise((r=>{t=e=>{(o()||s())&&r(e)},e.onPause?.()})).then((()=>{t=void 0,o()||e.onContinue?.()})),v=()=>{if(o())return;let t;const i=0===n?e.initialPromise:void 0;try{t=i??e.fn()}catch(e){t=Promise.reject(e)}Promise.resolve(t).then(u).catch((t=>{if(o())return;const i=e.retry??(d.isServer?0:3),a=e.retryDelay??h,u="function"==typeof a?a(n,t):a,c=!0===i||"number"==typeof i&&ns()?void 0:y())).then((()=>{r?m(t):v()}))):m(t)}))};return{promise:i,status:()=>i.status,cancel:t=>{o()||(m(new g(t)),e.abort?.())},continue:()=>(t?.(),i),cancelRetry:()=>{r=!0},continueRetry:()=>{r=!1},canStart:a,start:()=>(a()?v():y().then(v),i)}}},4086:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{streamedQuery:()=>l}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712);function l({queryFn:e,refetchMode:t="reset",maxChunks:r}){return async n=>{const i=n.client.getQueryCache().find({queryKey:n.queryKey,exact:!0}),o=!!i&&void 0!==i.state.data;o&&"reset"===t&&i.setState({status:"pending",data:void 0,error:null,fetchStatus:"fetching"});let s=[];const a=await e(n);for await(const e of a){if(n.signal.aborted)break;o&&"replace"===t||n.client.setQueryData(n.queryKey,((t=[])=>(0,c.addToEnd)(t,e,r))),s=(0,c.addToEnd)(s,e,r)}return o&&"replace"===t&&!n.signal.aborted&&n.client.setQueryData(n.queryKey,s),n.client.getQueryData(n.queryKey)}}},3174:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{Subscribable:()=>a}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));var a=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}},9916:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{pendingThenable:()=>l,tryResolveSync:()=>f}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9712);function l(){let e,t;const r=new Promise(((r,n)=>{e=r,t=n}));function n(e){Object.assign(r,e),delete r.resolve,delete r.reject}return r.status="pending",r.catch((()=>{})),r.resolve=t=>{n({status:"fulfilled",value:t}),e(t)},r.reject=e=>{n({status:"rejected",reason:e}),t(e)},r}function f(e){let t;if(e.then((e=>(t=e,e)),c.noop)?.catch(c.noop),void 0!==t)return{data:t}}},1940:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{dataTagErrorSymbol:()=>u,dataTagSymbol:()=>a,unsetMarker:()=>c}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));var a=Symbol("dataTagSymbol"),u=Symbol("dataTagErrorSymbol"),c=Symbol("unsetMarker")},9712:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{addToEnd:()=>E,addToStart:()=>I,ensureQueryFn:()=>C,functionalUpdate:()=>c,hashKey:()=>y,hashQueryKeyByOptions:()=>m,isPlainArray:()=>_,isPlainObject:()=>x,isServer:()=>a,isValidTimeout:()=>l,keepPreviousData:()=>O,matchMutation:()=>g,matchQuery:()=>p,noop:()=>u,partialMatchKey:()=>v,replaceData:()=>k,replaceEqualDeep:()=>w,resolveEnabled:()=>h,resolveStaleTime:()=>d,shallowEqualObjects:()=>b,shouldThrowError:()=>j,skipToken:()=>A,sleep:()=>M,timeUntilStale:()=>f}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));var a="undefined"==typeof window||"Deno"in globalThis;function u(){}function c(e,t){return"function"==typeof e?e(t):e}function l(e){return"number"==typeof e&&e>=0&&e!==1/0}function f(e,t){return Math.max(e+(t||0)-Date.now(),0)}function d(e,t){return"function"==typeof e?e(t):e}function h(e,t){return"function"==typeof e?e(t):e}function p(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:s,stale:a}=e;if(s)if(n){if(t.queryHash!==m(s,t.options))return!1}else if(!v(t.queryKey,s))return!1;if("all"!==r){const e=t.isActive();if("active"===r&&!e)return!1;if("inactive"===r&&e)return!1}return!("boolean"==typeof a&&t.isStale()!==a||i&&i!==t.state.fetchStatus||o&&!o(t))}function g(e,t){const{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(y(t.options.mutationKey)!==y(o))return!1}else if(!v(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function m(e,t){return(t?.queryKeyHashFn||y)(e)}function y(e){return JSON.stringify(e,((e,t)=>x(t)?Object.keys(t).sort().reduce(((e,r)=>(e[r]=t[r],e)),{}):t))}function v(e,t){return e===t||typeof e==typeof t&&!(!e||!t||"object"!=typeof e||"object"!=typeof t)&&Object.keys(t).every((r=>v(e[r],t[r])))}function w(e,t){if(e===t)return e;const r=_(e)&&_(t);if(r||x(e)&&x(t)){const n=r?e:Object.keys(e),i=n.length,o=r?t:Object.keys(t),s=o.length,a=r?[]:{},u=new Set(n);let c=0;for(let n=0;n{setTimeout(t,e)}))}function k(e,t,r){return"function"==typeof r.structuralSharing?r.structuralSharing(e,t):!1!==r.structuralSharing?w(e,t):t}function O(e){return e}function E(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function I(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var A=Symbol();function C(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:e.queryFn&&e.queryFn!==A?e.queryFn:()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`))}function j(e,t){return"function"==typeof e?e(...t):!!e}},5769:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{HydrationBoundary:()=>g}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=r(4976),g=({children:e,options:t={},state:r,queryClient:n})=>{const i=(0,p.useQueryClient)(n),o=d.useRef(t);o.current=t;const s=d.useMemo((()=>{if(r){if("object"!=typeof r)return;const e=i.getQueryCache(),t=r.queries||[],n=[],s=[];for(const r of t){const t=e.get(r.queryHash);t?(r.state.dataUpdatedAt>t.state.dataUpdatedAt||r.promise&&"pending"!==t.state.status&&"fetching"!==t.state.fetchStatus&&void 0!==r.dehydratedAt&&r.dehydratedAt>t.state.dataUpdatedAt)&&s.push(r):n.push(r)}if(n.length>0&&(0,h.hydrate)(i,{queries:n},o.current),s.length>0)return s}}),[i,r]);return d.useEffect((()=>{s&&(0,h.hydrate)(i,{queries:s},o.current)}),[i,s]),e}},1302:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{IsRestoringProvider:()=>g,useIsRestoring:()=>p}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=d.createContext(!1),p=()=>d.useContext(h),g=h.Provider},4976:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{QueryClientContext:()=>p,QueryClientProvider:()=>m,useQueryClient:()=>g}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(6070),p=d.createContext(void 0),g=e=>{const t=d.useContext(p);if(e)return e;if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},m=({client:e,children:t})=>(d.useEffect((()=>(e.mount(),()=>{e.unmount()})),[e]),(0,h.jsx)(p.Provider,{value:e,children:t}))},7703:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{QueryErrorResetBoundary:()=>y,useQueryErrorResetBoundary:()=>m}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(6070);function p(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var g=d.createContext(p()),m=()=>d.useContext(g),y=({children:e})=>{const[t]=d.useState((()=>p()));return(0,h.jsx)(g.Provider,{value:t,children:"function"==typeof e?e(t):e})}},1065:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{ensurePreventErrorBoundaryRetry:()=>p,getHasError:()=>m,useClearResetErrorBoundary:()=>g}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},g=e=>{d.useEffect((()=>{e.clearReset()}),[e])},m=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&void 0===e.data||(0,h.shouldThrowError)(r,[e.error,n]))},2518:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let u of s(t))a.call(e,u)||u===r||i(e,u,{get:()=>t[u],enumerable:!(n=o(t,u))||n.enumerable});return e},c=(e,t,r)=>(u(e,t,"default"),r&&u(r,t,"default")),l={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(l,{HydrationBoundary:()=>_.HydrationBoundary,IsRestoringProvider:()=>I.IsRestoringProvider,QueryClientContext:()=>b.QueryClientContext,QueryClientProvider:()=>b.QueryClientProvider,QueryErrorResetBoundary:()=>x.QueryErrorResetBoundary,infiniteQueryOptions:()=>w.infiniteQueryOptions,mutationOptions:()=>O.mutationOptions,queryOptions:()=>v.queryOptions,useInfiniteQuery:()=>E.useInfiniteQuery,useIsFetching:()=>S.useIsFetching,useIsMutating:()=>M.useIsMutating,useIsRestoring:()=>I.useIsRestoring,useMutation:()=>k.useMutation,useMutationState:()=>M.useMutationState,usePrefetchInfiniteQuery:()=>y.usePrefetchInfiniteQuery,usePrefetchQuery:()=>m.usePrefetchQuery,useQueries:()=>f.useQueries,useQuery:()=>d.useQuery,useQueryClient:()=>b.useQueryClient,useQueryErrorResetBoundary:()=>x.useQueryErrorResetBoundary,useSuspenseInfiniteQuery:()=>p.useSuspenseInfiniteQuery,useSuspenseQueries:()=>g.useSuspenseQueries,useSuspenseQuery:()=>h.useSuspenseQuery}),e.exports=(n=l,u(i({},"__esModule",{value:!0}),n)),c(l,r(9975),e.exports),c(l,r(8677),e.exports);var f=r(2165),d=r(7869),h=r(8573),p=r(7533),g=r(149),m=r(8150),y=r(6306),v=r(1588),w=r(6504),b=r(4976),_=r(5769),x=r(7703),S=r(8275),M=r(9065),k=r(3018),O=r(4287),E=r(7741),I=r(1302)},6504:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};function a(e){return e}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{infiniteQueryOptions:()=>a}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},4287:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};function a(e){return e}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{mutationOptions:()=>a}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},1588:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};function a(e){return e}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{queryOptions:()=>a}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},6934:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{defaultThrowOnError:()=>a,ensureSuspenseTimers:()=>u,fetchOptimistic:()=>f,shouldSuspend:()=>l,willFetch:()=>c}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));var a=(e,t)=>void 0===t.state.data,u=e=>{if(e.suspense){const t=e=>"static"===e?e:Math.max(e??1e3,1e3),r=e.staleTime;e.staleTime="function"==typeof r?(...e)=>t(r(...e)):t(r),"number"==typeof e.gcTime&&(e.gcTime=Math.max(e.gcTime,1e3))}},c=(e,t)=>e.isLoading&&e.isFetching&&!t,l=(e,t)=>e?.suspense&&t.isPending,f=(e,t,r)=>t.fetchOptimistic(e).catch((()=>{r.clearReset()}))},8677:e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty;e.exports=((e,o,s,a)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let s of n(o))i.call(e,s)||void 0===s||t(e,s,{get:()=>o[s],enumerable:!(a=r(o,s))||a.enumerable});return e})(t({},"__esModule",{value:!0}),{})},3752:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{useBaseQuery:()=>w}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=r(4976),g=r(7703),m=r(1065),y=r(1302),v=r(6934);function w(e,t,r){const n=(0,y.useIsRestoring)(),i=(0,g.useQueryErrorResetBoundary)(),o=(0,p.useQueryClient)(r),s=o.defaultQueryOptions(e);o.getDefaultOptions().queries?._experimental_beforeQuery?.(s),s._optimisticResults=n?"isRestoring":"optimistic",(0,v.ensureSuspenseTimers)(s),(0,m.ensurePreventErrorBoundaryRetry)(s,i),(0,m.useClearResetErrorBoundary)(i);const a=!o.getQueryCache().get(s.queryHash),[u]=d.useState((()=>new t(o,s))),c=u.getOptimisticResult(s),l=!n&&!1!==e.subscribed;if(d.useSyncExternalStore(d.useCallback((e=>{const t=l?u.subscribe(h.notifyManager.batchCalls(e)):h.noop;return u.updateResult(),t}),[u,l]),(()=>u.getCurrentResult()),(()=>u.getCurrentResult())),d.useEffect((()=>{u.setOptions(s)}),[s,u]),(0,v.shouldSuspend)(s,c))throw(0,v.fetchOptimistic)(s,u,i);if((0,m.getHasError)({result:c,errorResetBoundary:i,throwOnError:s.throwOnError,query:o.getQueryCache().get(s.queryHash),suspense:s.suspense}))throw c.error;if(o.getDefaultOptions().queries?._experimental_afterQuery?.(s,c),s.experimental_prefetchInRender&&!h.isServer&&(0,v.willFetch)(c,n)){const e=a?(0,v.fetchOptimistic)(s,u,i):o.getQueryCache().get(s.queryHash)?.promise;e?.catch(h.noop).finally((()=>{u.updateResult()}))}return s.notifyOnChangeProps?c:u.trackResult(c)}},7741:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{useInfiniteQuery:()=>f}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9975),l=r(3752);function f(e,t){return(0,l.useBaseQuery)(e,c.InfiniteQueryObserver,t)}},8275:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{useIsFetching:()=>g}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=r(4976);function g(e,t){const r=(0,p.useQueryClient)(t),n=r.getQueryCache();return d.useSyncExternalStore(d.useCallback((e=>n.subscribe(h.notifyManager.batchCalls(e))),[n]),(()=>r.isFetching(e)),(()=>r.isFetching(e)))}},3018:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{useMutation:()=>g}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=r(4976);function g(e,t){const r=(0,p.useQueryClient)(t),[n]=d.useState((()=>new h.MutationObserver(r,e)));d.useEffect((()=>{n.setOptions(e)}),[n,e]);const i=d.useSyncExternalStore(d.useCallback((e=>n.subscribe(h.notifyManager.batchCalls(e))),[n]),(()=>n.getCurrentResult()),(()=>n.getCurrentResult())),o=d.useCallback(((e,t)=>{n.mutate(e,t).catch(h.noop)}),[n]);if(i.error&&(0,h.shouldThrowError)(n.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:o,mutateAsync:i.mutate}}},9065:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{useIsMutating:()=>g,useMutationState:()=>y}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=r(4976);function g(e,t){return y({filters:{...e,status:"pending"}},(0,p.useQueryClient)(t)).length}function m(e,t){return e.findAll(t.filters).map((e=>t.select?t.select(e):e.state))}function y(e={},t){const r=(0,p.useQueryClient)(t).getMutationCache(),n=d.useRef(e),i=d.useRef(null);return i.current||(i.current=m(r,e)),d.useEffect((()=>{n.current=e})),d.useSyncExternalStore(d.useCallback((e=>r.subscribe((()=>{const t=(0,h.replaceEqualDeep)(i.current,m(r,n.current));i.current!==t&&(i.current=t,h.notifyManager.schedule(e))}))),[r]),(()=>i.current),(()=>i.current))}},6306:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{usePrefetchInfiniteQuery:()=>l}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(4976);function l(e,t){const r=(0,c.useQueryClient)(t);r.getQueryState(e.queryKey)||r.prefetchInfiniteQuery(e)}},8150:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{usePrefetchQuery:()=>l}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(4976);function l(e,t){const r=(0,c.useQueryClient)(t);r.getQueryState(e.queryKey)||r.prefetchQuery(e)}},2165:(e,t,r)=>{"use strict";var n,i=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))c.call(e,i)||i===r||o(e,i,{get:()=>t[i],enumerable:!(n=s(t,i))||n.enumerable});return e},f={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(f,{useQueries:()=>w}),e.exports=(n=f,l(o({},"__esModule",{value:!0}),n));var d=((e,t,r)=>(r=null!=e?i(u(e)):{},l(o(r,"default",{value:e,enumerable:!0}),e)))(r(758)),h=r(9975),p=r(4976),g=r(1302),m=r(7703),y=r(1065),v=r(6934);function w({queries:e,...t},r){const n=(0,p.useQueryClient)(r),i=(0,g.useIsRestoring)(),o=(0,m.useQueryErrorResetBoundary)(),s=d.useMemo((()=>e.map((e=>{const t=n.defaultQueryOptions(e);return t._optimisticResults=i?"isRestoring":"optimistic",t}))),[e,n,i]);s.forEach((e=>{(0,v.ensureSuspenseTimers)(e),(0,y.ensurePreventErrorBoundaryRetry)(e,o)})),(0,y.useClearResetErrorBoundary)(o);const[a]=d.useState((()=>new h.QueriesObserver(n,s,t))),[u,c,l]=a.getOptimisticResult(s,t.combine),f=!i&&!1!==t.subscribed;d.useSyncExternalStore(d.useCallback((e=>f?a.subscribe(h.notifyManager.batchCalls(e)):h.noop),[a,f]),(()=>a.getCurrentResult()),(()=>a.getCurrentResult())),d.useEffect((()=>{a.setQueries(s,t)}),[s,t,a]);const w=u.some(((e,t)=>(0,v.shouldSuspend)(s[t],e)))?u.flatMap(((e,t)=>{const r=s[t];if(r){const t=new h.QueryObserver(n,r);if((0,v.shouldSuspend)(r,e))return(0,v.fetchOptimistic)(r,t,o);(0,v.willFetch)(e,i)&&(0,v.fetchOptimistic)(r,t,o)}return[]})):[];if(w.length>0)throw Promise.all(w);const b=u.find(((e,t)=>{const r=s[t];return r&&(0,y.getHasError)({result:e,errorResetBoundary:o,throwOnError:r.throwOnError,query:n.getQueryCache().get(r.queryHash),suspense:r.suspense})}));if(b?.error)throw b.error;return c(l())}},7869:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{useQuery:()=>f}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9975),l=r(3752);function f(e,t){return(0,l.useBaseQuery)(e,c.QueryObserver,t)}},7533:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{useSuspenseInfiniteQuery:()=>d}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9975),l=r(3752),f=r(6934);function d(e,t){return(0,l.useBaseQuery)({...e,enabled:!0,suspense:!0,throwOnError:f.defaultThrowOnError},c.InfiniteQueryObserver,t)}},149:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{useSuspenseQueries:()=>f}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n)),r(9975);var c=r(2165),l=r(6934);function f(e,t){return(0,c.useQueries)({...e,queries:e.queries.map((e=>({...e,suspense:!0,throwOnError:l.defaultThrowOnError,enabled:!0,placeholderData:void 0})))},t)}},8573:(e,t,r)=>{"use strict";var n,i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{useSuspenseQuery:()=>d}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||i(e,r,{get:()=>t[r],enumerable:!(n=o(t,r))||n.enumerable});return e})(i({},"__esModule",{value:!0}),n));var c=r(9975),l=r(3752),f=r(6934);function d(e,t){return(0,l.useBaseQuery)({...e,enabled:!0,suspense:!0,throwOnError:f.defaultThrowOnError,placeholderData:void 0},c.QueryObserver,t)}},209:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseMessageSignerWalletAdapter:()=>I,BaseSignInMessageSignerWalletAdapter:()=>A,BaseSignerWalletAdapter:()=>E,BaseWalletAdapter:()=>S,ConnectionContext:()=>gt,ConnectionProvider:()=>Mt,EventEmitter:()=>i,HARDCODED_WALLET_STANDARDS:()=>Eo,HardcodedWalletStandardAdapter:()=>Wi,UnifiedWalletButton:()=>ls,UnifiedWalletProvider:()=>rs,WalletAccountError:()=>d,WalletAdapterNetwork:()=>R,WalletConfigError:()=>u,WalletConnectionError:()=>c,WalletContext:()=>F,WalletDisconnectedError:()=>l,WalletDisconnectionError:()=>f,WalletError:()=>o,WalletKeypairError:()=>p,WalletLoadError:()=>a,WalletNotConnectedError:()=>g,WalletNotReadyError:()=>s,WalletNotSelectedError:()=>yt,WalletProvider:()=>St,WalletPublicKeyError:()=>h,WalletReadyState:()=>n,WalletSendTransactionError:()=>m,WalletSignInError:()=>w,WalletSignMessageError:()=>v,WalletSignTransactionError:()=>y,WalletTimeoutError:()=>b,WalletWindowBlockedError:()=>_,WalletWindowClosedError:()=>x,isIosAndRedirectable:()=>k,isVersionedTransaction:()=>O,isWalletAdapterCompatibleStandardWallet:()=>P,scopePollingDetectionStrategy:()=>M,useAnchorWallet:()=>kt,useConnection:()=>mt,useLocalStorage:()=>K,useUnifiedWallet:()=>Xi,useUnifiedWalletContext:()=>Ji,useWallet:()=>q});var n,i=r(5852);class o extends Error{constructor(e,t){super(e),this.error=t}}class s extends o{constructor(){super(...arguments),this.name="WalletNotReadyError"}}class a extends o{constructor(){super(...arguments),this.name="WalletLoadError"}}class u extends o{constructor(){super(...arguments),this.name="WalletConfigError"}}class c extends o{constructor(){super(...arguments),this.name="WalletConnectionError"}}class l extends o{constructor(){super(...arguments),this.name="WalletDisconnectedError"}}class f extends o{constructor(){super(...arguments),this.name="WalletDisconnectionError"}}class d extends o{constructor(){super(...arguments),this.name="WalletAccountError"}}class h extends o{constructor(){super(...arguments),this.name="WalletPublicKeyError"}}class p extends o{constructor(){super(...arguments),this.name="WalletKeypairError"}}class g extends o{constructor(){super(...arguments),this.name="WalletNotConnectedError"}}class m extends o{constructor(){super(...arguments),this.name="WalletSendTransactionError"}}class y extends o{constructor(){super(...arguments),this.name="WalletSignTransactionError"}}class v extends o{constructor(){super(...arguments),this.name="WalletSignMessageError"}}class w extends o{constructor(){super(...arguments),this.name="WalletSignInError"}}class b extends o{constructor(){super(...arguments),this.name="WalletTimeoutError"}}class _ extends o{constructor(){super(...arguments),this.name="WalletWindowBlockedError"}}class x extends o{constructor(){super(...arguments),this.name="WalletWindowClosedError"}}!function(e){e.Installed="Installed",e.NotDetected="NotDetected",e.Loadable="Loadable",e.Unsupported="Unsupported"}(n||(n={}));class S extends i{get connected(){return!!this.publicKey}async autoConnect(){await this.connect()}async prepareTransaction(e,t,r={}){const n=this.publicKey;if(!n)throw new g;return e.feePayer=e.feePayer||n,e.recentBlockhash=e.recentBlockhash||(await t.getLatestBlockhash({commitment:r.preflightCommitment,minContextSlot:r.minContextSlot})).blockhash,e}}function M(e){if("undefined"==typeof window||"undefined"==typeof document)return;const t=[];function r(){if(e())for(const e of t)e()}const n=setInterval(r,1e3);t.push((()=>clearInterval(n))),"loading"===document.readyState&&(document.addEventListener("DOMContentLoaded",r,{once:!0}),t.push((()=>document.removeEventListener("DOMContentLoaded",r)))),"complete"!==document.readyState&&(window.addEventListener("load",r,{once:!0}),t.push((()=>window.removeEventListener("load",r)))),r()}function k(){if(!navigator)return!1;const e=navigator.userAgent.toLowerCase(),t=e.includes("iphone")||e.includes("ipad"),r=e.includes("safari");return t&&r}function O(e){return"version"in e}class E extends S{async sendTransaction(e,t,r={}){let n=!0;try{if(O(e)){if(!this.supportedTransactionVersions)throw new m("Sending versioned transactions isn't supported by this wallet");if(!this.supportedTransactionVersions.has(e.version))throw new m(`Sending transaction version ${e.version} isn't supported by this wallet`);try{const n=(e=await this.signTransaction(e)).serialize();return await t.sendRawTransaction(n,r)}catch(e){if(e instanceof y)throw n=!1,e;throw new m(e?.message,e)}}else try{const{signers:n,...i}=r;e=await this.prepareTransaction(e,t,i),n?.length&&e.partialSign(...n);const o=(e=await this.signTransaction(e)).serialize();return await t.sendRawTransaction(o,i)}catch(e){if(e instanceof y)throw n=!1,e;throw new m(e?.message,e)}}catch(e){throw n&&this.emit("error",e),e}}async signAllTransactions(e){for(const t of e)if(O(t)){if(!this.supportedTransactionVersions)throw new y("Signing versioned transactions isn't supported by this wallet");if(!this.supportedTransactionVersions.has(t.version))throw new y(`Signing transaction version ${t.version} isn't supported by this wallet`)}const t=[];for(const r of e)t.push(await this.signTransaction(r));return t}}class I extends E{}class A extends I{}const C="solana:signAndSendTransaction",j="solana:signTransaction",N="standard:connect",T="standard:events";function P(e){return N in e.features&&T in e.features&&(C in e.features||j in e.features)}var R;!function(e){e.Mainnet="mainnet-beta",e.Testnet="testnet",e.Devnet="devnet"}(R||(R={}));var D=r(758),L=r.t(D,2),B=r(5640);const z=[],U={autoConnect:!1,connecting:!1,connected:!1,disconnecting:!1,select(){W("call","select")},connect:()=>Promise.reject(W("call","connect")),disconnect:()=>Promise.reject(W("call","disconnect")),sendTransaction:()=>Promise.reject(W("call","sendTransaction")),signTransaction:()=>Promise.reject(W("call","signTransaction")),signAllTransactions:()=>Promise.reject(W("call","signAllTransactions")),signMessage:()=>Promise.reject(W("call","signMessage")),signIn:()=>Promise.reject(W("call","signIn"))};function W(e,t){const r=new Error(`You have tried to ${e} "${t}" on a WalletContext without providing one. Make sure to render a WalletProvider as an ancestor of the component that uses WalletContext.`);return B.error(r),r}Object.defineProperty(U,"wallets",{get:()=>(W("read","wallets"),z)}),Object.defineProperty(U,"wallet",{get:()=>(W("read","wallet"),null)}),Object.defineProperty(U,"publicKey",{get:()=>(W("read","publicKey"),null)});const F=(0,D.createContext)(U);function q(){return(0,D.useContext)(F)}var H=r(5640);function K(e,t){const r=(0,D.useState)((()=>{try{const t=localStorage.getItem(e);if(t)return JSON.parse(t)}catch(e){"undefined"!=typeof window&&H.error(e)}return t})),n=r[0],i=(0,D.useRef)(!0);return(0,D.useEffect)((()=>{if(i.current)i.current=!1;else try{null===n?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(n))}catch(e){"undefined"!=typeof window&&H.error(e)}}),[n,e]),r}var Q=r(3760),V=r(5640);const $={ERROR_ASSOCIATION_PORT_OUT_OF_RANGE:"ERROR_ASSOCIATION_PORT_OUT_OF_RANGE",ERROR_FORBIDDEN_WALLET_BASE_URL:"ERROR_FORBIDDEN_WALLET_BASE_URL",ERROR_SECURE_CONTEXT_REQUIRED:"ERROR_SECURE_CONTEXT_REQUIRED",ERROR_SESSION_CLOSED:"ERROR_SESSION_CLOSED",ERROR_SESSION_TIMEOUT:"ERROR_SESSION_TIMEOUT",ERROR_WALLET_NOT_FOUND:"ERROR_WALLET_NOT_FOUND"};class Y extends Error{constructor(...e){const[t,r,n]=e;super(r),this.code=t,this.data=n,this.name="SolanaMobileWalletAdapterError"}}class G extends Error{constructor(...e){const[t,r,n,i]=e;super(n),this.code=r,this.data=i,this.jsonRpcMessageId=t,this.name="SolanaMobileWalletAdapterProtocolError"}}function Z(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))}const J=4,X=12;function ee(e,t){return{additionalData:e,iv:t,name:"AES-GCM",tagLength:128}}let te;function re(e){if(e<49152||e>65535)throw new Y($.ERROR_ASSOCIATION_PORT_OUT_OF_RANGE,`Association port number must be between 49152 and 65535. ${e} given.`,{port:e});return e}const ne="solana-wallet";function ie(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}const oe={Firefox:0,Other:1};let se=null;function ae(e,t){return Z(this,void 0,void 0,(function*(){const r=re(49152+Math.floor(16384*Math.random())),n=yield function(e,t,r){return Z(this,void 0,void 0,(function*(){const n=re(t),i=function(e){let t="";const r=new Uint8Array(e),n=r.byteLength;for(let e=0;e({"/":"_","+":"-","=":"."}[e])))),o.searchParams.set("port",`${n}`),o}))}(e,r,t);if("https:"===n.protocol)window.location.assign(n);else try{switch(-1!==navigator.userAgent.indexOf("Firefox/")?oe.Firefox:oe.Other){case oe.Firefox:i=n,null==se&&(se=document.createElement("iframe"),se.style.display="none",document.body.appendChild(se)),se.contentWindow.location.href=i.toString();break;case oe.Other:{const e=new Promise(((e,t)=>{function r(){clearTimeout(i),window.removeEventListener("blur",n)}function n(){r(),e()}window.addEventListener("blur",n);const i=setTimeout((()=>{r(),t()}),2e3)}));window.location.assign(n),yield e;break}}}catch(e){throw new Y($.ERROR_WALLET_NOT_FOUND,"Found no installed wallet that supports the mobile wallet protocol.")}var i;return r}))}const ue={retryDelayScheduleMs:[150,150,200,500,500,750,750,1e3],timeoutMs:3e4};function ce(e,t){return Z(this,void 0,void 0,(function*(){!function(){if("undefined"==typeof window||!0!==window.isSecureContext)throw new Y($.ERROR_SECURE_CONTEXT_REQUIRED,"The mobile wallet adapter protocol must be used in a secure context (`https`).")}();const r=yield function(){return Z(this,void 0,void 0,(function*(){return yield crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign"])}))}(),n=yield ae(r.publicKey,null==t?void 0:t.baseUri),i=`ws://localhost:${n}/solana-wallet`;let o;const s=(()=>{const e=[...ue.retryDelayScheduleMs];return()=>e.length>1?e.shift():e[0]})();let a=1,u=0,c={__type:"disconnected"};return new Promise(((t,l)=>{let f;const d={},h=()=>Z(this,void 0,void 0,(function*(){if("connecting"!==c.__type)return void V.warn(`Expected adapter state to be \`connecting\` at the moment the websocket opens. Got \`${c.__type}\`.`);const{associationKeypair:e}=c;f.removeEventListener("open",h);const t=yield function(){return Z(this,void 0,void 0,(function*(){return yield crypto.subtle.generateKey({name:"ECDH",namedCurve:"P-256"},!1,["deriveKey","deriveBits"])}))}();f.send(yield function(e,t){return Z(this,void 0,void 0,(function*(){const r=yield crypto.subtle.exportKey("raw",e),n=yield crypto.subtle.sign({hash:"SHA-256",name:"ECDSA"},t,r),i=new Uint8Array(r.byteLength+n.byteLength);return i.set(new Uint8Array(r),0),i.set(new Uint8Array(n),r.byteLength),i}))}(t.publicKey,e.privateKey)),c={__type:"hello_req_sent",associationPublicKey:e.publicKey,ecdhPrivateKey:t.privateKey}})),p=e=>{e.wasClean?c={__type:"disconnected"}:l(new Y($.ERROR_SESSION_CLOSED,`The wallet session dropped unexpectedly (${e.code}: ${e.reason}).`,{closeEvent:e})),y()},g=e=>Z(this,void 0,void 0,(function*(){y(),Date.now()-o>=ue.timeoutMs?l(new Y($.ERROR_SESSION_TIMEOUT,`Failed to connect to the wallet websocket on port ${n}.`)):(yield new Promise((e=>{const t=s();v=window.setTimeout(e,t)})),w())})),m=r=>Z(this,void 0,void 0,(function*(){const n=yield r.data.arrayBuffer();switch(c.__type){case"connected":try{const e=n.slice(0,J),t=new DataView(e).getUint32(0,!1);if(t!==u+1)throw new Error("Encrypted message has invalid sequence number");u=t;const r=yield function(e,t){return Z(this,void 0,void 0,(function*(){const r=e.slice(0,J),n=e.slice(J,J+X),i=e.slice(J+X),o=yield crypto.subtle.decrypt(ee(r,n),t,i),s=(void 0===te&&(te=new TextDecoder("utf-8")),te).decode(o),a=JSON.parse(s);if(Object.hasOwnProperty.call(a,"error"))throw new G(a.id,a.error.code,a.error.message);return a}))}(n,c.sharedSecret),i=d[r.id];delete d[r.id],i.resolve(r.result)}catch(e){if(!(e instanceof G))throw e;{const t=d[e.jsonRpcMessageId];delete d[e.jsonRpcMessageId],t.reject(e)}}break;case"hello_req_sent":{const r=yield function(e,t,r){return Z(this,void 0,void 0,(function*(){const[n,i]=yield Promise.all([crypto.subtle.exportKey("raw",t),crypto.subtle.importKey("raw",e,{name:"ECDH",namedCurve:"P-256"},!1,[])]),o=yield crypto.subtle.deriveBits({name:"ECDH",public:i},r,256),s=yield crypto.subtle.importKey("raw",o,"HKDF",!1,["deriveKey"]);return yield crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:new Uint8Array(n),info:new Uint8Array},s,{name:"AES-GCM",length:128},!1,["encrypt","decrypt"])}))}(n,c.associationPublicKey,c.ecdhPrivateKey);c={__type:"connected",sharedSecret:r};const i=new Proxy({},{get(e,t){if(null==e[t]){const n=t.toString().replace(/[A-Z]/g,(e=>`_${e.toLowerCase()}`)).toLowerCase();e[t]=function(e){return Z(this,void 0,void 0,(function*(){const i=a++;return f.send(yield function(e,t){return Z(this,void 0,void 0,(function*(){const r=JSON.stringify(e),n=function(e){if(e>=4294967296)throw new Error("Outbound sequence number overflow. The maximum sequence number is 32-bytes.");const t=new ArrayBuffer(J);return new DataView(t).setUint32(0,e,!1),new Uint8Array(t)}(e.id),i=new Uint8Array(X);crypto.getRandomValues(i);const o=yield crypto.subtle.encrypt(ee(n,i),t,(new TextEncoder).encode(r)),s=new Uint8Array(n.byteLength+i.byteLength+o.byteLength);return s.set(new Uint8Array(n),0),s.set(new Uint8Array(i),n.byteLength),s.set(new Uint8Array(o),n.byteLength+i.byteLength),s}))}({id:i,jsonrpc:"2.0",method:n,params:null!=e?e:{}},r)),new Promise(((e,r)=>{d[i]={resolve(n){switch(t){case"authorize":case"reauthorize":{const{wallet_uri_base:e}=n;if(null!=e)try{!function(e){let t;try{t=new URL(e)}catch(e){throw new Y($.ERROR_FORBIDDEN_WALLET_BASE_URL,"Invalid base URL supplied by wallet")}if("https:"!==t.protocol)throw new Y($.ERROR_FORBIDDEN_WALLET_BASE_URL,"Base URLs supplied by wallets must be valid `https` URLs")}(e)}catch(e){return void r(e)}break}}e(n)},reject:r}}))}))}}return e[t]},defineProperty:()=>!1,deleteProperty:()=>!1});try{t(yield e(i))}catch(e){l(e)}finally{y(),f.close()}break}}}));let y,v;const w=()=>{y&&y(),c={__type:"connecting",associationKeypair:r},void 0===o&&(o=Date.now()),f=new WebSocket(i,["com.solana.mobilewalletadapter.v1"]),f.addEventListener("open",h),f.addEventListener("close",p),f.addEventListener("error",g),f.addEventListener("message",m),y=()=>{window.clearTimeout(v),f.removeEventListener("open",h),f.removeEventListener("close",p),f.removeEventListener("error",g),f.removeEventListener("message",m)}};w()}))}))}var le=r(7250);function fe(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);ie.charCodeAt(0))))}function ge(e){return he("version"in e?e.serialize():e.serialize({requireAllSignatures:!1,verifySignatures:!1}))}function me(e){const t=e[0]*Q.SIGNATURE_LENGTH_IN_BYTES+1;return"legacy"===Q.VersionedMessage.deserializeMessageVersion(e.slice(t,e.length))?Q.Transaction.from(e):Q.VersionedTransaction.deserialize(e)}function ye(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))}const ve="Mobile Wallet Adapter";function we(e){return"version"in e}class be extends I{constructor(e){super(),this.supportedTransactionVersions=new Set(["legacy",0]),this.name=ve,this.url="https://solanamobile.com/wallets",this.icon="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjI4IiB3aWR0aD0iMjgiIHZpZXdCb3g9Ii0zIDAgMjggMjgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0RDQjhGRiI+PHBhdGggZD0iTTE3LjQgMTcuNEgxNXYyLjRoMi40di0yLjRabTEuMi05LjZoLTIuNHYyLjRoMi40VjcuOFoiLz48cGF0aCBkPSJNMjEuNiAzVjBoLTIuNHYzaC0zLjZWMGgtMi40djNoLTIuNHY2LjZINC41YTIuMSAyLjEgMCAxIDEgMC00LjJoMi43VjNINC41QTQuNSA0LjUgMCAwIDAgMCA3LjVWMjRoMjEuNnYtNi42aC0yLjR2NC4ySDIuNFYxMS41Yy41LjMgMS4yLjQgMS44LjVoNy41QTYuNiA2LjYgMCAwIDAgMjQgOVYzaC0yLjRabTAgNS43YTQuMiA0LjIgMCAxIDEtOC40IDBWNS40aDguNHYzLjNaIi8+PC9nPjwvc3ZnPg==",this._connecting=!1,this._connectionGeneration=0,this._readyState="undefined"!=typeof window&&window.isSecureContext&&"undefined"!=typeof document&&/android/i.test(navigator.userAgent)?n.Loadable:n.Unsupported,this._authorizationResultCache=e.authorizationResultCache,this._addressSelector=e.addressSelector,this._appIdentity=e.appIdentity,this._cluster=e.cluster,this._onWalletNotFound=e.onWalletNotFound,this._readyState!==n.Unsupported&&this._authorizationResultCache.get().then((e=>{e&&this.declareWalletAsInstalled()}))}get publicKey(){if(null==this._publicKey&&null!=this._selectedAddress)try{this._publicKey=function(e){const t=(r=e,new Uint8Array(window.atob(r).split("").map((e=>e.charCodeAt(0)))));var r;return new Q.PublicKey(t)}(this._selectedAddress)}catch(e){throw new h(e instanceof Error&&(null==e?void 0:e.message)||"Unknown error",e)}return this._publicKey?this._publicKey:null}get connected(){return!!this._authorizationResult}get connecting(){return this._connecting}get readyState(){return this._readyState}declareWalletAsInstalled(){this._readyState!==n.Installed&&this.emit("readyStateChange",this._readyState=n.Installed)}runWithGuard(e){return ye(this,void 0,void 0,(function*(){try{return yield e()}catch(e){throw this.emit("error",e),e}}))}autoConnect_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(){return ye(this,void 0,void 0,(function*(){return yield this.autoConnect()}))}autoConnect(){return ye(this,void 0,void 0,(function*(){if(!this.connecting&&!this.connected)return yield this.runWithGuard((()=>ye(this,void 0,void 0,(function*(){if(this._readyState!==n.Installed&&this._readyState!==n.Loadable)throw new s;this._connecting=!0;try{const e=yield this._authorizationResultCache.get();e&&this.handleAuthorizationResult(e)}catch(e){throw new c(e instanceof Error&&e.message||"Unknown error",e)}finally{this._connecting=!1}}))))}))}connect(){return ye(this,void 0,void 0,(function*(){if(!this.connecting&&!this.connected)return yield this.runWithGuard((()=>ye(this,void 0,void 0,(function*(){if(this._readyState!==n.Installed&&this._readyState!==n.Loadable)throw new s;this._connecting=!0;try{const e=yield this._authorizationResultCache.get();if(e)return void this.handleAuthorizationResult(e);yield this.transact((e=>ye(this,void 0,void 0,(function*(){const t=yield e.authorize({cluster:this._cluster,identity:this._appIdentity});Promise.all([this._authorizationResultCache.set(t),this.handleAuthorizationResult(t)])}))))}catch(e){throw new c(e instanceof Error&&e.message||"Unknown error",e)}finally{this._connecting=!1}}))))}))}handleAuthorizationResult(e){var t;return ye(this,void 0,void 0,(function*(){const r=null==this._authorizationResult||(null===(t=this._authorizationResult)||void 0===t?void 0:t.accounts.length)!==e.accounts.length||this._authorizationResult.accounts.some(((t,r)=>t.address!==e.accounts[r].address));if(this._authorizationResult=e,this.declareWalletAsInstalled(),r){const t=yield this._addressSelector.select(e.accounts.map((({address:e})=>e)));t!==this._selectedAddress&&(this._selectedAddress=t,delete this._publicKey,this.emit("connect",this.publicKey))}}))}performReauthorization(e,t){return ye(this,void 0,void 0,(function*(){try{const r=yield e.reauthorize({auth_token:t,identity:this._appIdentity});Promise.all([this._authorizationResultCache.set(r),this.handleAuthorizationResult(r)])}catch(e){throw this.disconnect(),new l(e instanceof Error&&(null==e?void 0:e.message)||"Unknown error",e)}}))}disconnect(){return ye(this,void 0,void 0,(function*(){this._authorizationResultCache.clear(),this._connecting=!1,this._connectionGeneration++,delete this._authorizationResult,delete this._publicKey,delete this._selectedAddress,this.emit("disconnect")}))}transact(e){var t;return ye(this,void 0,void 0,(function*(){const r=null===(t=this._authorizationResult)||void 0===t?void 0:t.wallet_uri_base,n=r?{baseUri:r}:void 0,i=this._connectionGeneration;try{return yield function(e,t){return de(this,void 0,void 0,(function*(){return yield ce((t=>{const r=new Proxy({},{get(e,r){if(null==e[r])switch(r){case"signAndSendTransactions":e[r]=function(e){var{minContextSlot:r,transactions:n}=e,i=fe(e,["minContextSlot","transactions"]);return de(this,void 0,void 0,(function*(){const e=n.map(ge),{signatures:o}=yield t.signAndSendTransactions(Object.assign(Object.assign(Object.assign({},i),null!=r?{options:{min_context_slot:r}}:null),{payloads:e}));return o.map(pe).map(le.encode)}))};break;case"signMessages":e[r]=function(e){var{payloads:r}=e,n=fe(e,["payloads"]);return de(this,void 0,void 0,(function*(){const e=r.map(he),{signed_payloads:i}=yield t.signMessages(Object.assign(Object.assign({},n),{payloads:e}));return i.map(pe)}))};break;case"signTransactions":e[r]=function(e){var{transactions:r}=e,n=fe(e,["transactions"]);return de(this,void 0,void 0,(function*(){const e=r.map(ge),{signed_payloads:i}=yield t.signTransactions(Object.assign(Object.assign({},n),{payloads:e}));return i.map(pe).map(me)}))};break;default:e[r]=t[r]}return e[r]},defineProperty:()=>!1,deleteProperty:()=>!1});return e(r)}),t)}))}(e,n)}catch(e){throw this._connectionGeneration!==i&&(yield new Promise((()=>{}))),e instanceof Error&&"SolanaMobileWalletAdapterError"===e.name&&"ERROR_WALLET_NOT_FOUND"===e.code&&(yield this._onWalletNotFound(this)),e}}))}assertIsAuthorized(){if(!this._authorizationResult||!this._selectedAddress)throw new g;return{authToken:this._authorizationResult.auth_token,selectedAddress:this._selectedAddress}}performSignTransactions(e){return ye(this,void 0,void 0,(function*(){const{authToken:t}=this.assertIsAuthorized();try{return yield this.transact((r=>ye(this,void 0,void 0,(function*(){return yield this.performReauthorization(r,t),yield r.signTransactions({transactions:e})}))))}catch(e){throw new y(null==e?void 0:e.message,e)}}))}sendTransaction(e,t,r){return ye(this,void 0,void 0,(function*(){return yield this.runWithGuard((()=>ye(this,void 0,void 0,(function*(){const{authToken:n}=this.assertIsAuthorized(),i=null==r?void 0:r.minContextSlot;try{return yield this.transact((o=>ye(this,void 0,void 0,(function*(){function s(){let e,n;switch(t.commitment){case"confirmed":case"finalized":case"processed":e=t.commitment;break;default:e="finalized"}switch(null==r?void 0:r.preflightCommitment){case"confirmed":case"finalized":case"processed":n=r.preflightCommitment;break;case void 0:n=e;default:n="finalized"}return("finalized"===n?2:"confirmed"===n?1:0)<("finalized"===e?2:"confirmed"===e?1:0)?n:e}const[a,u,c]=yield Promise.all([o.getCapabilities(),this.performReauthorization(o,n),we(e)?null:(()=>ye(this,void 0,void 0,(function*(){var r;if(e.feePayer||(e.feePayer=null!==(r=this.publicKey)&&void 0!==r?r:void 0),null==e.recentBlockhash){const{blockhash:r}=yield t.getLatestBlockhash({commitment:s()});e.recentBlockhash=r}})))()]);if(a.supports_sign_and_send_transactions)return(yield o.signAndSendTransactions({minContextSlot:i,transactions:[e]}))[0];{const[n]=yield o.signTransactions({transactions:[e]});if(we(n))return yield t.sendTransaction(n);{const e=n.serialize();return yield t.sendRawTransaction(e,Object.assign(Object.assign({},r),{preflightCommitment:s()}))}}}))))}catch(e){throw new m(null==e?void 0:e.message,e)}}))))}))}signTransaction(e){return ye(this,void 0,void 0,(function*(){return yield this.runWithGuard((()=>ye(this,void 0,void 0,(function*(){const[t]=yield this.performSignTransactions([e]);return t}))))}))}signAllTransactions(e){return ye(this,void 0,void 0,(function*(){return yield this.runWithGuard((()=>ye(this,void 0,void 0,(function*(){return yield this.performSignTransactions(e)}))))}))}signMessage(e){return ye(this,void 0,void 0,(function*(){return yield this.runWithGuard((()=>ye(this,void 0,void 0,(function*(){const{authToken:t,selectedAddress:r}=this.assertIsAuthorized();try{return yield this.transact((n=>ye(this,void 0,void 0,(function*(){yield this.performReauthorization(n,t);const[i]=yield n.signMessages({addresses:[r],payloads:[e]});return i.slice(-64)}))))}catch(e){throw new v(null==e?void 0:e.message,e)}}))))}))}}function _e(){return{select(e){return ye(this,void 0,void 0,(function*(){return e[0]}))}}}const xe="SolanaMobileWalletAdapterDefaultAuthorizationCache";function Se(){let e;try{e=window.localStorage}catch(e){}return{clear(){return ye(this,void 0,void 0,(function*(){if(e)try{e.removeItem(xe)}catch(e){}}))},get(){return ye(this,void 0,void 0,(function*(){if(e)try{return JSON.parse(e.getItem(xe))||void 0}catch(e){}}))},set(t){return ye(this,void 0,void 0,(function*(){if(e)try{e.setItem(xe,JSON.stringify(t))}catch(e){}}))}}}function Me(e){return ye(this,void 0,void 0,(function*(){"undefined"!=typeof window&&window.location.assign(e.url)}))}function ke(){return Me}const Oe=P,Ee="solana:signMessage",Ie="solana:signIn",Ae="solana:mainnet";function Ce(e){switch(e){case"processed":case"confirmed":case"finalized":case void 0:return e;case"recent":return"processed";case"single":case"singleGossip":return"confirmed";case"max":case"root":return"finalized";default:return}}const je="standard:disconnect";r(5640),new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap;const Ne=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e>>0,c=new Uint8Array(u);for(;e[o];){let n=t[e.charCodeAt(o)];if(255===n)return;let i=0;for(let e=u-1;(0!==n||i>>0,c[e]=n%256>>>0,n=n/256>>>0;if(0!==n)throw new Error("Non-zero carry");a=i,o++}let l=u-a;for(;l!==u&&0===c[l];)l++;const f=new Uint8Array(s+(u-l));let d=s;for(;l!==u;)f[d++]=c[l++];return f}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let i=0,s=0,a=0;const u=t.length;for(;a!==u&&0===t[a];)a++,i++;const c=(u-a)*o+1>>>0,l=new Uint8Array(c);for(;a!==u;){let e=t[a],n=0;for(let t=c-1;(0!==e||n>>0,l[t]=e%r>>>0,e=e/r>>>0;if(0!==e)throw new Error("Non-zero carry");s=n,a++}let f=c-s;for(;f!==c&&0===l[f];)f++;let d=n.repeat(i);for(;f{if("accounts"in e){const e=Je(this,Ue,"f").accounts[0];Je(this,Pe,"f")&&!Je(this,Le,"f")&&e!==Je(this,Pe,"f")&&(e?Je(this,Te,"m",qe).call(this,e):(this.emit("error",new l),Je(this,Te,"m",He).call(this)))}"features"in e&&Je(this,Te,"m",Ke).call(this)})),Ze(this,Ue,e,"f"),Ze(this,Pe,null,"f"),Ze(this,Re,null,"f"),Ze(this,De,!1,"f"),Ze(this,Le,!1,"f"),Ze(this,Be,Je(this,Ue,"f").features[T].on("change",Je(this,Qe,"f")),"f"),Je(this,Te,"m",Ke).call(this)}get name(){return Je(this,Ue,"f").name}get url(){return"https://github.com/solana-labs/wallet-standard"}get icon(){return Je(this,Ue,"f").icon}get readyState(){return Je(this,We,"f")}get publicKey(){return Je(this,Re,"f")}get connecting(){return Je(this,De,"f")}get supportedTransactionVersions(){return Je(this,ze,"f")}get wallet(){return Je(this,Ue,"f")}get standard(){return!0}destroy(){Ze(this,Pe,null,"f"),Ze(this,Re,null,"f"),Ze(this,De,!1,"f"),Ze(this,Le,!1,"f");const e=Je(this,Be,"f");e&&(Ze(this,Be,null,"f"),e())}async autoConnect(){return Je(this,Te,"m",Fe).call(this,{silent:!0})}async connect(){return Je(this,Te,"m",Fe).call(this)}async disconnect(){if(je in Je(this,Ue,"f").features)try{Ze(this,Le,!0,"f"),await Je(this,Ue,"f").features[je].disconnect()}catch(e){this.emit("error",new f(e?.message,e))}finally{Ze(this,Le,!1,"f")}Je(this,Te,"m",He).call(this)}async sendTransaction(e,t,r={}){try{const i=Je(this,Pe,"f");if(!i)throw new g;let s;if(C in Je(this,Ue,"f").features)if(i.features.includes(C))s=C;else{if(!(j in Je(this,Ue,"f").features)||!i.features.includes(j))throw new d;s=j}else{if(!(j in Je(this,Ue,"f").features))throw new u;if(!i.features.includes(j))throw new d;s=j}const a=(n=t.rpcEndpoint).includes("https://api.mainnet-beta.solana.com")?Ae:/\bdevnet\b/i.test(n)?"solana:devnet":/\btestnet\b/i.test(n)?"solana:testnet":/\blocalhost\b/i.test(n)||/\b127\.0\.0\.1\b/.test(n)?"solana:localnet":Ae;if(!i.chains.includes(a))throw new m;try{const{signers:n,...o}=r;let u;if(O(e)?(n?.length&&e.sign(n),u=e.serialize()):(e=await this.prepareTransaction(e,t,o),n?.length&&e.partialSign(...n),u=new Uint8Array(e.serialize({requireAllSignatures:!1,verifySignatures:!1}))),s===C){const[e]=await Je(this,Ue,"f").features[C].signAndSendTransaction({account:i,chain:a,transaction:u,options:{preflightCommitment:Ce(o.preflightCommitment||t.commitment),skipPreflight:o.skipPreflight,maxRetries:o.maxRetries,minContextSlot:o.minContextSlot}});return Ne.encode(e.signature)}{const[e]=await Je(this,Ue,"f").features[j].signTransaction({account:i,chain:a,transaction:u,options:{preflightCommitment:Ce(o.preflightCommitment||t.commitment),minContextSlot:o.minContextSlot}});return await t.sendRawTransaction(e.signedTransaction,{...o,preflightCommitment:Ce(o.preflightCommitment||t.commitment)})}}catch(e){if(e instanceof o)throw e;throw new m(e?.message,e)}}catch(e){throw this.emit("error",e),e}var n}}Pe=new WeakMap,Re=new WeakMap,De=new WeakMap,Le=new WeakMap,Be=new WeakMap,ze=new WeakMap,Ue=new WeakMap,We=new WeakMap,Qe=new WeakMap,Te=new WeakSet,Fe=async function(e){try{if(this.connected||this.connecting)return;if(Je(this,We,"f")!==n.Installed)throw new s;if(Ze(this,De,!0,"f"),!Je(this,Ue,"f").accounts.length)try{await Je(this,Ue,"f").features[N].connect(e)}catch(e){throw new c(e?.message,e)}const t=Je(this,Ue,"f").accounts[0];if(!t)throw new d;Je(this,Te,"m",qe).call(this,t)}catch(e){throw this.emit("error",e),e}finally{Ze(this,De,!1,"f")}},qe=function(e){let t;try{t=new Q.PublicKey(e.address)}catch(e){throw new h(e?.message,e)}Ze(this,Pe,e,"f"),Ze(this,Re,t,"f"),Je(this,Te,"m",Ke).call(this),this.emit("connect",t)},He=function(){Ze(this,Pe,null,"f"),Ze(this,Re,null,"f"),Je(this,Te,"m",Ke).call(this),this.emit("disconnect")},Ke=function(){const e=C in Je(this,Ue,"f").features?Je(this,Ue,"f").features[C].supportedTransactionVersions:Je(this,Ue,"f").features[j].supportedTransactionVersions;Ze(this,ze,function(e,t){if(e===t)return!0;const r=e.length;if(r!==t.length)return!1;for(let n=0;n({account:t,transaction:O(e)?e.serialize():new Uint8Array(e.serialize({requireAllSignatures:!1,verifySignatures:!1}))}))));return e.map(((e,t)=>{const n=r[t].signedTransaction;return O(e)?Q.VersionedTransaction.deserialize(n):Q.Transaction.from(n)}))}catch(e){throw new y(e?.message,e)}}catch(e){throw this.emit("error",e),e}},Ye=async function(e){try{const t=Je(this,Pe,"f");if(!t)throw new g;if(!(Ee in Je(this,Ue,"f").features))throw new u;if(!t.features.includes(Ee))throw new d;try{return(await Je(this,Ue,"f").features[Ee].signMessage({account:t,message:e}))[0].signature}catch(e){throw new v(e?.message,e)}}catch(e){throw this.emit("error",e),e}},Ge=async function(e={}){try{if(!(Ie in Je(this,Ue,"f").features))throw new u;let t;try{[t]=await Je(this,Ue,"f").features[Ie].signIn(e)}catch(e){throw new w(e?.message,e)}if(!t)throw new w;return Je(this,Te,"m",qe).call(this,t.account),t}catch(e){throw this.emit("error",e),e}};var et,tt=r(5640);let rt;const nt=new Set,it={};function ot(){if(rt)return rt;if(rt=Object.freeze({register:st,get:at,on:ut}),"undefined"==typeof window)return rt;const e=Object.freeze({register:st});try{window.addEventListener("wallet-standard:register-wallet",(({detail:t})=>t(e)))}catch(e){tt.error("wallet-standard:register-wallet event listener could not be added\n",e)}try{window.dispatchEvent(new lt(e))}catch(e){tt.error("wallet-standard:app-ready event could not be dispatched\n",e)}return rt}function st(...e){return(e=e.filter((e=>!nt.has(e)))).length?(e.forEach((e=>nt.add(e))),it.register?.forEach((t=>ct((()=>t(...e))))),function(){e.forEach((e=>nt.delete(e))),it.unregister?.forEach((t=>ct((()=>t(...e)))))}):()=>{}}function at(){return[...nt]}function ut(e,t){return it[e]?.push(t)||(it[e]=[t]),function(){it[e]=it[e]?.filter((e=>t!==e))}}function ct(e){try{e()}catch(e){tt.error(e)}}class lt extends Event{constructor(e){super("wallet-standard:app-ready",{bubbles:!1,cancelable:!1,composed:!1}),et.set(this,void 0),function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(e,r):i?i.value=r:t.set(e,r)}(this,et,e,"f")}get detail(){return function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}(this,et,"f")}get type(){return"wallet-standard:app-ready"}preventDefault(){throw new Error("preventDefault cannot be called")}stopImmediatePropagation(){throw new Error("stopImmediatePropagation cannot be called")}stopPropagation(){throw new Error("stopPropagation cannot be called")}}et=new WeakMap;var ft,dt=r(5640);function ht(e){const t=(0,D.useRef)();return t.current||(t.current={value:e()}),t.current.value}function pt(e){return e.filter(Oe).map((e=>new Xe({wallet:e})))}!function(e){e[e.DESKTOP_WEB=0]="DESKTOP_WEB",e[e.MOBILE_WEB=1]="MOBILE_WEB"}(ft||(ft={}));const gt=(0,D.createContext)({});function mt(){return(0,D.useContext)(gt)}class yt extends o{constructor(){super(...arguments),this.name="WalletNotSelectedError"}}var vt=r(5640);function wt({children:e,wallets:t,adapter:r,isUnloadingRef:i,onAutoConnectRequest:o,onConnectError:a,onError:u,onSelectWallet:c}){const l=(0,D.useRef)(!1),[f,d]=(0,D.useState)(!1),h=(0,D.useRef)(!1),[p,m]=(0,D.useState)(!1),[y,v]=(0,D.useState)((()=>r?.publicKey??null)),[w,b]=(0,D.useState)((()=>r?.connected??!1)),_=(0,D.useRef)(u);(0,D.useEffect)((()=>(_.current=u,()=>{_.current=void 0})),[u]);const x=(0,D.useRef)(((e,t)=>(i.current||(_.current?_.current(e,t):(vt.error(e,t),e instanceof s&&"undefined"!=typeof window&&t&&window.open(t.url,"_blank"))),e))),[S,M]=(0,D.useState)((()=>t.map((e=>({adapter:e,readyState:e.readyState}))).filter((({readyState:e})=>e!==n.Unsupported))));(0,D.useEffect)((()=>{function e(e){M((t=>{const r=t.findIndex((({adapter:e})=>e===this));if(-1===r)return t;const{adapter:i}=t[r];return[...t.slice(0,r),{adapter:i,readyState:e},...t.slice(r+1)].filter((({readyState:e})=>e!==n.Unsupported))}))}return M((e=>t.map(((t,r)=>{const n=e[r];return n&&n.adapter===t&&n.readyState===t.readyState?n:{adapter:t,readyState:t.readyState}})).filter((({readyState:e})=>e!==n.Unsupported)))),t.forEach((t=>t.on("readyStateChange",e,t))),()=>{t.forEach((t=>t.off("readyStateChange",e,t)))}}),[r,t]);const k=(0,D.useMemo)((()=>S.find((e=>e.adapter===r))??null),[r,S]);(0,D.useEffect)((()=>{if(!r)return;const e=e=>{v(e),l.current=!1,d(!1),b(!0),h.current=!1,m(!1)},t=()=>{i.current||(v(null),l.current=!1,d(!1),b(!1),h.current=!1,m(!1))},n=e=>{x.current(e,r)};return r.on("connect",e),r.on("disconnect",t),r.on("error",n),()=>{r.off("connect",e),r.off("disconnect",t),r.off("error",n),t()}}),[r,i]);const O=(0,D.useRef)(!1);(0,D.useEffect)((()=>()=>{O.current=!1}),[r]),(0,D.useEffect)((()=>{O.current||l.current||w||!o||k?.readyState!==n.Installed&&k?.readyState!==n.Loadable||(l.current=!0,d(!0),O.current=!0,async function(){try{await o()}catch{a()}finally{d(!1),l.current=!1}}())}),[w,o,a,k]);const E=(0,D.useCallback)((async(e,t,n)=>{if(!r)throw x.current(new yt);if(!w)throw x.current(new g,r);return await r.sendTransaction(e,t,n)}),[r,w]),I=(0,D.useMemo)((()=>r&&"signTransaction"in r?async e=>{if(!w)throw x.current(new g,r);return await r.signTransaction(e)}:void 0),[r,w]),A=(0,D.useMemo)((()=>r&&"signAllTransactions"in r?async e=>{if(!w)throw x.current(new g,r);return await r.signAllTransactions(e)}:void 0),[r,w]),C=(0,D.useMemo)((()=>r&&"signMessage"in r?async e=>{if(!w)throw x.current(new g,r);return await r.signMessage(e)}:void 0),[r,w]),j=(0,D.useMemo)((()=>r&&"signIn"in r?async e=>await r.signIn(e):void 0),[r]),N=(0,D.useCallback)((async()=>{if(l.current||h.current||k?.adapter.connected)return;if(!k)throw x.current(new yt);const{adapter:e,readyState:t}=k;if(t!==n.Installed&&t!==n.Loadable)throw x.current(new s,e);l.current=!0,d(!0);try{await e.connect()}catch(e){throw a(),e}finally{d(!1),l.current=!1}}),[a,k]),T=(0,D.useCallback)((async()=>{if(!h.current&&r){h.current=!0,m(!0);try{await r.disconnect()}finally{m(!1),h.current=!1}}}),[r]);return D.createElement(F.Provider,{value:{autoConnect:!!o,wallets:S,wallet:k,publicKey:y,connected:w,connecting:f,disconnecting:p,select:c,connect:N,disconnect:T,sendTransaction:E,signTransaction:I,signAllTransactions:A,signMessage:C,signIn:j}},e)}let bt;function _t(e){return function({adapters:e,userAgentString:t}){return e.some((e=>e.name!==ve&&e.readyState===n.Installed))?ft.DESKTOP_WEB:t&&/android/i.test(t)&&!function(e){return/(WebView|Version\/.+(Chrome)\/(\d+)\.(\d+)\.(\d+)\.(\d+)|; wv\).+(Chrome)\/(\d+)\.(\d+)\.(\d+)\.(\d+))/i.test(e)}(t)?ft.MOBILE_WEB:ft.DESKTOP_WEB}({adapters:e,userAgentString:(void 0===bt&&(bt=globalThis.navigator?.userAgent??null),bt)})===ft.MOBILE_WEB}function xt(){const e=globalThis.location;if(e)return`${e.protocol}//${e.host}`}function St({children:e,wallets:t,autoConnect:r,localStorageKey:n="walletName",onError:i}){const{connection:o}=mt(),s=function(e){const t=ht((()=>new Set)),{get:r,on:n}=ht((()=>function(){if(rt)return rt;if(rt=ot(),"undefined"==typeof window)return rt;const e=window.navigator.wallets||[];if(!Array.isArray(e))return tt.error("window.navigator.wallets is not an array"),rt;const{register:t}=rt,r=(...e)=>e.forEach((e=>ct((()=>e({register:t})))));try{Object.defineProperty(window.navigator,"wallets",{value:Object.freeze({push:r})})}catch(e){return tt.error("window.navigator.wallets could not be set"),rt}return r(...e),rt}())),[i,o]=(0,D.useState)((()=>pt(r())));(0,D.useEffect)((()=>{const e=[n("register",((...e)=>o((t=>[...t,...pt(e)])))),n("unregister",((...e)=>o((t=>t.filter((t=>e.some((e=>e===t.wallet))))))))];return()=>e.forEach((e=>e()))}),[n]);const s=function(e){const t=(0,D.useRef)();return(0,D.useEffect)((()=>{t.current=e})),t.current}(i);return(0,D.useEffect)((()=>{if(!s)return;const e=new Set(i);new Set(s.filter((t=>!e.has(t)))).forEach((e=>e.destroy()))}),[s,i]),(0,D.useEffect)((()=>()=>i.forEach((e=>e.destroy()))),[]),(0,D.useMemo)((()=>[...i,...e.filter((({name:e})=>!i.some((t=>t.name===e))||(t.has(e)||(t.add(e),dt.warn(`${e} was registered as a Standard Wallet. The Wallet Adapter for ${e} can be removed from your app.`)),!1)))]),[i,e,t])}(t),a=(0,D.useMemo)((()=>{if(!_t(s))return null;const e=s.find((e=>e.name===ve));return e||new be({addressSelector:_e(),appIdentity:{uri:xt()},authorizationResultCache:Se(),cluster:(t=o?.rpcEndpoint,t?/devnet/i.test(t)?"devnet":/testnet/i.test(t)?"testnet":"mainnet-beta":"mainnet-beta"),onWalletNotFound:ke()});var t}),[s,o?.rpcEndpoint]),u=(0,D.useMemo)((()=>null==a||-1!==s.indexOf(a)?s:[a,...s]),[s,a]),[c,l]=K(n,_t(s)?ve:null),f=(0,D.useMemo)((()=>u.find((e=>e.name===c))??null),[u,c]),d=(0,D.useCallback)((e=>{c!==e&&(f&&f.name!==ve&&f.disconnect(),l(e))}),[f,l,c]);(0,D.useEffect)((()=>{if(f)return f.on("disconnect",e),()=>{f.off("disconnect",e)};function e(){g.current||c===ve&&_t(s)||l(null)}}),[f,s,l,c]);const h=(0,D.useRef)(!1),p=(0,D.useMemo)((()=>{if(r&&f)return async()=>{(!0===r||await r(f))&&(h.current?await f.connect():await f.autoConnect())}}),[r,f]),g=(0,D.useRef)(!1);(0,D.useEffect)((()=>{if(c!==ve||!_t(s))return window.addEventListener("beforeunload",e),()=>{window.removeEventListener("beforeunload",e)};function e(){g.current=!0}g.current=!1}),[s,c]);const m=(0,D.useCallback)((()=>{f&&f.name!==ve&&d(null)}),[f,d]),y=(0,D.useCallback)((e=>{h.current=!0,d(e)}),[d]);return D.createElement(wt,{wallets:u,adapter:f,isUnloadingRef:g,onAutoConnectRequest:p,onConnectError:m,onError:i,onSelectWallet:y},e)}const Mt=({children:e,endpoint:t,config:r={commitment:"confirmed"}})=>{const n=(0,D.useMemo)((()=>new Q.Connection(t,r)),[t,r]);return D.createElement(gt.Provider,{value:{connection:n}},e)};function kt(){const{publicKey:e,signTransaction:t,signAllTransactions:r}=q();return(0,D.useMemo)((()=>e&&t&&r?{publicKey:e,signTransaction:t,signAllTransactions:r}:void 0),[e,t,r])}var Ot=function(){function e(e){var t=this;this._insertTag=function(e){var r;r=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,r),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?Tt(qt,--Wt):0,zt--,10===Ft&&(zt=1,Bt--),Ft}function Vt(){return Ft=Wt2||Zt(Ft)>3?"":" "}function rr(e,t){for(;--t&&Vt()&&!(Ft<48||Ft>102||Ft>57&&Ft<65||Ft>70&&Ft<97););return Gt(e,Yt()+(t<6&&32==$t()&&32==Vt()))}function nr(e){for(;Vt();)switch(Ft){case e:return Wt;case 34:case 39:34!==e&&39!==e&&nr(Ft);break;case 40:41===e&&nr(e);break;case 92:Vt()}return Wt}function ir(e,t){for(;Vt()&&e+Ft!==57&&(e+Ft!==84||47!==$t()););return"/*"+Gt(t,Wt-1)+"*"+It(47===e?e:Vt())}function or(e){for(;!Zt($t());)Vt();return Gt(e,Wt)}var sr="-ms-",ar="-moz-",ur="-webkit-",cr="comm",lr="rule",fr="decl",dr="@keyframes";function hr(e,t){for(var r="",n=Dt(e),i=0;i0&&Rt(S)-f&&Lt(h>32?wr(S+";",n,r,f-1):wr(jt(S," ","")+";",n,r,f-2),u);break;case 59:S+=";";default:if(Lt(x=yr(S,t,r,c,l,i,a,w,b=[],_=[],f),o),123===v)if(0===l)mr(S,t,x,x,b,o,f,a,_);else switch(99===d&&110===Tt(S,3)?100:d){case 100:case 108:case 109:case 115:mr(e,x,x,n&&Lt(yr(e,x,x,0,0,i,a,w,i,b=[],f),_),i,_,f,a,n?b:_);break;default:mr(S,x,x,x,[""],_,0,a,_)}}c=l=h=0,g=y=1,w=S="",f=s;break;case 58:f=1+Rt(S),h=p;default:if(g<1)if(123==v)--g;else if(125==v&&0==g++&&125==Qt())continue;switch(S+=It(v),v*g){case 38:y=l>0?1:(S+="\f",-1);break;case 44:a[c++]=(Rt(S)-1)*y,y=1;break;case 64:45===$t()&&(S+=er(Vt())),d=$t(),l=f=Rt(w=S+=or(Yt())),v++;break;case 45:45===p&&2==Rt(S)&&(g=0)}}return o}function yr(e,t,r,n,i,o,s,a,u,c,l){for(var f=i-1,d=0===i?o:[""],h=Dt(d),p=0,g=0,m=0;p0?d[y]+" "+v:jt(v,/&\f/g,d[y])))&&(u[m++]=w);return Ht(e,t,r,0===i?lr:a,u,c,l)}function vr(e,t,r){return Ht(e,t,r,cr,It(Ft),Pt(e,2,-2),0)}function wr(e,t,r,n){return Ht(e,t,r,fr,Pt(e,0,n),Pt(e,n+1,-1),n)}r(5640);var br=function(e,t,r){for(var n=0,i=0;n=i,i=$t(),38===n&&12===i&&(t[r]=1),!Zt(i);)Vt();return Gt(e,Wt)},_r=new WeakMap,xr=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,r=e.parent,n=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||_r.get(r))&&!n){_r.set(e,!0);for(var i=[],o=function(e,t){return Xt(function(e,t){var r=-1,n=44;do{switch(Zt(n)){case 0:38===n&&12===$t()&&(t[r]=1),e[r]+=br(Wt-1,t,r);break;case 2:e[r]+=er(n);break;case 4:if(44===n){e[++r]=58===$t()?"&\f":"",t[r]=e[r].length;break}default:e[r]+=It(n)}}while(n=Vt());return e}(Jt(e),t))}(t,i),s=r.props,a=0,u=0;a6)switch(Tt(e,t+1)){case 109:if(45!==Tt(e,t+4))break;case 102:return jt(e,/(.+:)(.+)-([^]+)/,"$1"+ur+"$2-$3$1"+ar+(108==Tt(e,t+3)?"$3":"$2-$3"))+e;case 115:return~Nt(e,"stretch")?Mr(jt(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Tt(e,t+1))break;case 6444:switch(Tt(e,Rt(e)-3-(~Nt(e,"!important")&&10))){case 107:return jt(e,":",":"+ur)+e;case 101:return jt(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+ur+(45===Tt(e,14)?"inline-":"")+"box$3$1"+ur+"$2$3$1"+sr+"$2box$3")+e}break;case 5936:switch(Tt(e,t+11)){case 114:return ur+e+sr+jt(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return ur+e+sr+jt(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return ur+e+sr+jt(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return ur+e+sr+e+e}return e}var kr=[function(e,t,r,n){if(e.length>-1&&!e.return)switch(e.type){case fr:e.return=Mr(e.value,e.length);break;case dr:return hr([Kt(e,{value:jt(e.value,"@","@"+ur)})],n);case lr:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return hr([Kt(e,{props:[jt(t,/:(read-\w+)/,":-moz-$1")]})],n);case"::placeholder":return hr([Kt(e,{props:[jt(t,/:(plac\w+)/,":"+ur+"input-$1")]}),Kt(e,{props:[jt(t,/:(plac\w+)/,":-moz-$1")]}),Kt(e,{props:[jt(t,/:(plac\w+)/,sr+"input-$1")]})],n)}return""}))}}],Or=function(e){var t=e.key;if("css"===t){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var n,i,o=e.stylisPlugins||kr,s={},a=[];n=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),r=1;r=4;++n,i-=4)t=1540483477*(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(i){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(n)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)}(i)+u;return{name:c,styles:i,next:Lr}}(o,void 0,D.useContext(Qr));s+=t.key+"-"+a.name;var u={};for(var c in e)Wr.call(e,c)&&"css"!==c&&c!==Vr&&(u[c]=e[c]);return u.ref=r,u.className=s,D.createElement(D.Fragment,null,D.createElement($r,{cache:t,serialized:a,isStringTag:"string"==typeof i}),D.createElement(i,u))})),Gr=Yr,Zr=(r(1035),function(e,t){var r=arguments;if(null==t||!Wr.call(t,"css"))return D.createElement.apply(void 0,r);var n=r.length,i=new Array(n);i[0]=Gr,i[1]=function(e,t){var r={};for(var n in t)Wr.call(t,n)&&(r[n]=t[n]);return r[Vr]=e,r}(e,t);for(var o=2;o0){for(o+=s,t=1;tr)throw Error(an+e)}function Mn(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=vn,i=0):(i=Math.ceil((t+1)/vn),t%=vn),o=dn(10,vn-t),a=e[i]%o|0,null==n?t<3?(0==t?a=a/100|0:1==t&&(a=a/10|0),s=r<4&&99999==a||r>3&&49999==a||5e4==a||0==a):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==dn(10,t-2)-1||(a==o/2||0==a)&&!(e[i+1]/o/100|0):t<4?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),s=(n||r<4)&&9999==a||!n&&r>3&&4999==a):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==dn(10,t-3)-1,s}function kn(e,t,r){for(var n,i,o=[0],s=0,a=e.length;sr-1&&(void 0===o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/r|0,o[n]%=r)}return o.reverse()}_n.absoluteValue=_n.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),En(e)},_n.ceil=function(){return En(new this.constructor(this),this.e+1,2)},_n.clampedTo=_n.clamp=function(e,t){var r=this,n=r.constructor;if(e=new n(e),t=new n(t),!e.s||!t.s)return new n(NaN);if(e.gt(t))throw Error(an+t);return r.cmp(e)<0?e:r.cmp(t)>0?t:new n(r)},_n.comparedTo=_n.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,u=o.s,c=e.s;if(!s||!a)return u&&c?u!==c?u:s===a?0:!s^u<0?1:-1:NaN;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==e.e)return o.e>e.e^u<0?1:-1;for(t=0,r=(n=s.length)<(i=a.length)?n:i;ta[t]^u<0?1:-1;return n===i?0:n>i^u<0?1:-1},_n.cosine=_n.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+vn,n.rounding=1,r=function(e,t){var r,n,i;if(t.isZero())return t;(n=t.d.length)<32?i=(1/qn(4,r=Math.ceil(n/3))).toString():(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=Fn(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}(n,Hn(n,r)),n.precision=e,n.rounding=t,En(2==Hr||3==Hr?r.neg():r,e,t,!0)):new n(1):new n(NaN)},_n.cubeRoot=_n.cbrt=function(){var e,t,r,n,i,o,s,a,u,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(on=!1,(o=l.s*dn(l.s*l,1/3))&&Math.abs(o)!=1/0?n=new f(o.toString()):(r=xn(l.d),(o=((e=l.e)-r.length+1)%3)&&(r+=1==o||-2==o?"0":"00"),o=dn(r,1/3),e=fn((e+1)/3)-(e%3==(e<0?-1:2)),(n=new f(r=o==1/0?"5e"+e:(r=o.toExponential()).slice(0,r.indexOf("e")+1)+e)).s=l.s),s=(e=f.precision)+3;;)if(c=(u=(a=n).times(a).times(a)).plus(l),n=On(c.plus(l).times(a),c.plus(u),s+2,1),xn(a.d).slice(0,s)===(r=xn(n.d)).slice(0,s)){if("9999"!=(r=r.slice(s-3,s+1))&&(i||"4999"!=r)){+r&&(+r.slice(1)||"5"!=r.charAt(0))||(En(n,e+1,1),t=!n.times(n).times(n).eq(l));break}if(!i&&(En(a,e+1,0),a.times(a).times(a).eq(l))){n=a;break}s+=4,i=1}return on=!0,En(n,e,f.rounding,t)},_n.decimalPlaces=_n.dp=function(){var e,t=this.d,r=NaN;if(t){if(r=((e=t.length-1)-fn(this.e/vn))*vn,e=t[e])for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r},_n.dividedBy=_n.div=function(e){return On(this,new this.constructor(e))},_n.dividedToIntegerBy=_n.divToInt=function(e){var t=this.constructor;return En(On(this,new t(e),0,1,1),t.precision,t.rounding)},_n.equals=_n.eq=function(e){return 0===this.cmp(e)},_n.floor=function(){return En(new this.constructor(this),this.e+1,3)},_n.greaterThan=_n.gt=function(e){return this.cmp(e)>0},_n.greaterThanOrEqualTo=_n.gte=function(e){var t=this.cmp(e);return 1==t||0===t},_n.hyperbolicCosine=_n.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,(i=o.d.length)<32?t=(1/qn(4,e=Math.ceil(i/3))).toString():(e=16,t="2.3283064365386962890625e-10"),o=Fn(s,1,o.times(t),new s(1),!0);for(var u,c=e,l=new s(8);c--;)u=o.times(o),o=a.minus(u.times(l.minus(u.times(l))));return En(o,s.precision=r,s.rounding=n,!0)},_n.hyperbolicSine=_n.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,(n=i.d.length)<3)i=Fn(o,2,i,i,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,i=Fn(o,2,i=i.times(1/qn(5,e)),i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=r,En(i,t,r,!0)},_n.hyperbolicTangent=_n.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,On(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)},_n.inverseCosine=_n.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return-1!==n?0===n?t.isNeg()?jn(r,i,o):new r(0):new r(NaN):t.isZero()?jn(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=jn(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))},_n.inverseHyperbolicCosine=_n.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,on=!1,r=r.times(r).minus(1).sqrt().plus(r),on=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)},_n.inverseHyperbolicSine=_n.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,on=!1,r=r.times(r).plus(1).sqrt().plus(r),on=!0,n.precision=e,n.rounding=t,r.ln())},_n.inverseHyperbolicTangent=_n.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?En(new o(i),e,t,!0):(o.precision=r=n-i.e,i=On(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)},_n.inverseSine=_n.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,-1!==t?0===t?((e=jn(o,r+4,n).times(.5)).s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))},_n.inverseTangent=_n.atan=function(){var e,t,r,n,i,o,s,a,u,c=this,l=c.constructor,f=l.precision,d=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=bn)return(s=jn(l,f+4,d).times(.25)).s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=bn)return(s=jn(l,f+4,d).times(.5)).s=c.s,s}for(l.precision=a=f+10,l.rounding=1,e=r=Math.min(28,a/vn+2|0);e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(on=!1,t=Math.ceil(a/vn),n=1,u=c.times(c),s=new l(c),i=c;-1!==e;)if(i=i.times(u),o=s.minus(i.div(n+=2)),i=i.times(u),void 0!==(s=o.plus(i.div(n+=2))).d[t])for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2},_n.isNaN=function(){return!this.s},_n.isNegative=_n.isNeg=function(){return this.s<0},_n.isPositive=_n.isPos=function(){return this.s>0},_n.isZero=function(){return!!this.d&&0===this.d[0]},_n.lessThan=_n.lt=function(e){return this.cmp(e)<0},_n.lessThanOrEqualTo=_n.lte=function(e){return this.cmp(e)<1},_n.logarithm=_n.log=function(e){var t,r,n,i,o,s,a,u,c=this,l=c.constructor,f=l.precision,d=l.rounding;if(null==e)e=new l(10),t=!0;else{if(r=(e=new l(e)).d,e.s<0||!r||!r[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(r=c.d,c.s<0||!r||!r[0]||c.eq(1))return new l(r&&!r[0]?-1/0:1!=c.s?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10==0;)i/=10;o=1!==i}if(on=!1,s=Bn(c,a=f+5),n=t?Cn(l,a+10):Bn(e,a),Mn((u=On(s,n,a,1)).d,i=f,d))do{if(s=Bn(c,a+=10),n=t?Cn(l,a+10):Bn(e,a),u=On(s,n,a,1),!o){+xn(u.d).slice(i+1,i+15)+1==1e14&&(u=En(u,f+1,0));break}}while(Mn(u.d,i+=10,d));return on=!0,En(u,f,d)},_n.minus=_n.sub=function(e){var t,r,n,i,o,s,a,u,c,l,f,d,h=this,p=h.constructor;if(e=new p(e),!h.d||!e.d)return h.s&&e.s?h.d?e.s=-e.s:e=new p(e.d||h.s!==e.s?h:NaN):e=new p(NaN),e;if(h.s!=e.s)return e.s=-e.s,h.plus(e);if(c=h.d,d=e.d,a=p.precision,u=p.rounding,!c[0]||!d[0]){if(d[0])e.s=-e.s;else{if(!c[0])return new p(3===u?-0:0);e=new p(h)}return on?En(e,a,u):e}if(r=fn(e.e/vn),l=fn(h.e/vn),c=c.slice(),o=l-r){for((f=o<0)?(t=c,o=-o,s=d.length):(t=d,r=l,s=c.length),o>(n=Math.max(Math.ceil(a/vn),s)+2)&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for((f=(n=c.length)<(s=d.length))&&(s=n),n=0;n0;--n)c[s++]=0;for(n=d.length;n>o;){if(c[--n](s=(o=Math.ceil(a/vn))>s?o+1:s+1)&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((s=c.length)-(i=l.length)<0&&(i=s,r=l,l=c,c=r),t=0;i;)t=(c[--i]=c[i]+l[i]+t)/yn|0,c[i]%=yn;for(t&&(c.unshift(t),++n),s=c.length;0==c[--s];)c.pop();return e.d=c,e.e=An(c,n),on?En(e,a,u):e},_n.precision=_n.sd=function(e){var t,r=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(an+e);return r.d?(t=Nn(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t},_n.round=function(){var e=this,t=e.constructor;return En(new t(e),e.e+1,t.rounding)},_n.sine=_n.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+vn,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Fn(e,2,t,t);r=(r=1.4*Math.sqrt(n))>16?16:0|r,t=Fn(e,2,t=t.times(1/qn(5,r)),t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}(n,Hn(n,r)),n.precision=e,n.rounding=t,En(Hr>2?r.neg():r,e,t,!0)):new n(NaN)},_n.squareRoot=_n.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,u=s.e,c=s.s,l=s.constructor;if(1!==c||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(on=!1,0==(c=Math.sqrt(+s))||c==1/0?(((t=xn(a)).length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=fn((u+1)/2)-(u<0||u%2),n=new l(t=c==1/0?"5e"+u:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+u)):n=new l(c.toString()),r=(u=l.precision)+3;;)if(n=(o=n).plus(On(s,o,r+2,1)).times(.5),xn(o.d).slice(0,r)===(t=xn(n.d)).slice(0,r)){if("9999"!=(t=t.slice(r-3,r+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(En(n,u+1,1),e=!n.times(n).eq(s));break}if(!i&&(En(o,u+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}return on=!0,En(n,u,l.rounding,e)},_n.tangent=_n.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(r=r.sin()).s=1,r=On(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,En(2==Hr||4==Hr?r.neg():r,e,t,!0)):new n(NaN)},_n.times=_n.mul=function(e){var t,r,n,i,o,s,a,u,c,l=this,f=l.constructor,d=l.d,h=(e=new f(e)).d;if(e.s*=l.s,!(d&&d[0]&&h&&h[0]))return new f(!e.s||d&&!d[0]&&!h||h&&!h[0]&&!d?NaN:d&&h?0*e.s:e.s/0);for(r=fn(l.e/vn)+fn(e.e/vn),(u=d.length)<(c=h.length)&&(o=d,d=h,h=o,s=u,u=c,c=s),o=[],n=s=u+c;n--;)o.push(0);for(n=c;--n>=0;){for(t=0,i=u+n;i>n;)a=o[i]+h[n]*d[i-n-1]+t,o[i--]=a%yn|0,t=a/yn|0;o[i]=(o[i]+t)%yn|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=An(o,r),on?En(e,f.precision,f.rounding):e},_n.toBinary=function(e,t){return Kn(this,2,e,t)},_n.toDecimalPlaces=_n.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(Sn(e,0,Xr),void 0===t?t=n.rounding:Sn(t,0,8),En(r,e+r.e+1,t))},_n.toExponential=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=In(n,!0):(Sn(e,0,Xr),void 0===t?t=i.rounding:Sn(t,0,8),r=In(n=En(new i(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r},_n.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return void 0===e?r=In(i):(Sn(e,0,Xr),void 0===t?t=o.rounding:Sn(t,0,8),r=In(n=En(new o(i),e+i.e+1,t),!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r},_n.toFraction=function(e){var t,r,n,i,o,s,a,u,c,l,f,d,h=this,p=h.d,g=h.constructor;if(!p)return new g(h);if(c=r=new g(1),n=u=new g(0),s=(o=(t=new g(n)).e=Nn(p)-h.e-1)%vn,t.d[0]=dn(10,s<0?vn+s:s),null==e)e=o>0?t:c;else{if(!(a=new g(e)).isInt()||a.lt(c))throw Error(an+a);e=a.gt(t)?o>0?t:c:a}for(on=!1,a=new g(xn(p)),l=g.precision,g.precision=o=p.length*vn*2;f=On(a,t,0,1,1),1!=(i=r.plus(f.times(n))).cmp(e);)r=n,n=i,i=c,c=u.plus(f.times(i)),u=i,i=t,t=a.minus(f.times(i)),a=i;return i=On(e.minus(r),n,0,1,1),u=u.plus(i.times(c)),r=r.plus(i.times(n)),u.s=c.s=h.s,d=On(c,n,o,1).minus(h).abs().cmp(On(u,r,o,1).minus(h).abs())<1?[c,n]:[u,r],g.precision=l,on=!0,d},_n.toHexadecimal=_n.toHex=function(e,t){return Kn(this,16,e,t)},_n.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:Sn(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(on=!1,r=On(r,e,0,t,1).times(e),on=!0,En(r)):(e.s=r.s,r=e),r},_n.toNumber=function(){return+this},_n.toOctal=function(e,t){return Kn(this,8,e,t)},_n.toPower=_n.pow=function(e){var t,r,n,i,o,s,a=this,u=a.constructor,c=+(e=new u(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new u(dn(+a,c));if((a=new u(a)).eq(1))return a;if(n=u.precision,o=u.rounding,e.eq(1))return En(a,n,o);if((t=fn(e.e/vn))>=e.d.length-1&&(r=c<0?-c:c)<=9007199254740991)return i=Pn(u,a,r,n),e.s<0?new u(1).div(i):En(i,n,o);if((s=a.s)<0){if(tu.maxE+1||t0?s/0:0):(on=!1,u.rounding=a.s=1,r=Math.min(12,(t+"").length),(i=Ln(e.times(Bn(a,n+r)),n)).d&&Mn((i=En(i,n+5,1)).d,n,o)&&(t=n+10,+xn((i=En(Ln(e.times(Bn(a,t+r)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(i=En(i,n+1,0))),i.s=s,on=!0,u.rounding=o,En(i,n,o))},_n.toPrecision=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=In(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(Sn(e,1,Xr),void 0===t?t=i.rounding:Sn(t,0,8),r=In(n=En(new i(n),e,t),e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r},_n.toSignificantDigits=_n.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(Sn(e,1,Xr),void 0===t?t=r.rounding:Sn(t,0,8)),En(new r(this),e,t)},_n.toString=function(){var e=this,t=e.constructor,r=In(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r},_n.truncated=_n.trunc=function(){return En(new this.constructor(this),this.e+1,1)},_n.valueOf=_n.toJSON=function(){var e=this,t=e.constructor,r=In(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};var On=function(){function e(e,t,r){var n,i=0,o=e.length;for(e=e.slice();o--;)n=e[o]*t+i,e[o]=n%r|0,i=n/r|0;return i&&e.unshift(i),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;it[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]1;)e.shift()}return function(n,i,o,s,a,u){var c,l,f,d,h,p,g,m,y,v,w,b,_,x,S,M,k,O,E,I,A=n.constructor,C=n.s==i.s?1:-1,j=n.d,N=i.d;if(!(j&&j[0]&&N&&N[0]))return new A(n.s&&i.s&&(j?!N||j[0]!=N[0]:N)?j&&0==j[0]||!N?0*C:C/0:NaN);for(u?(h=1,l=n.e-i.e):(u=yn,h=vn,l=fn(n.e/h)-fn(i.e/h)),E=N.length,k=j.length,v=(y=new A(C)).d=[],f=0;N[f]==(j[f]||0);f++);if(N[f]>(j[f]||0)&&l--,null==o?(x=o=A.precision,s=A.rounding):x=a?o+(n.e-i.e)+1:o,x<0)v.push(1),p=!0;else{if(x=x/h+2|0,f=0,1==E){for(d=0,N=N[0],x++;(f1&&(N=e(N,d,u),j=e(j,d,u),E=N.length,k=j.length),M=E,b=(w=j.slice(0,E)).length;b=u/2&&++O;do{d=0,(c=t(N,w,E,b))<0?(_=w[0],E!=b&&(_=_*u+(w[1]||0)),(d=_/O|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(N,d,u),w,m=g.length,b=w.length))&&(d--,r(g,E=10;d/=10)f++;y.e=f+l*h-1,En(y,a?o+y.e+1:o,s,p)}return y}}();function En(e,t,r,n){var i,o,s,a,u,c,l,f,d,h=e.constructor;e:if(null!=t){if(!(f=e.d))return e;for(i=1,a=f[0];a>=10;a/=10)i++;if((o=t-i)<0)o+=vn,s=t,u=(l=f[d=0])/dn(10,i-s-1)%10|0;else if((d=Math.ceil((o+1)/vn))>=(a=f.length)){if(!n)break e;for(;a++<=d;)f.push(0);l=u=0,i=1,s=(o%=vn)-vn+1}else{for(l=a=f[d],i=1;a>=10;a/=10)i++;u=(s=(o%=vn)-vn+i)<0?0:l/dn(10,i-s-1)%10|0}if(n=n||t<0||void 0!==f[d+1]||(s<0?l:l%dn(10,i-s-1)),c=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(o>0?s>0?l/dn(10,i-s):0:f[d-1])%10&1||r==(e.s<0?8:7)),t<1||!f[0])return f.length=0,c?(t-=e.e+1,f[0]=dn(10,(vn-t%vn)%vn),e.e=-t||0):f[0]=e.e=0,e;if(0==o?(f.length=d,a=1,d--):(f.length=d+1,a=dn(10,vn-o),f[d]=s>0?(l/dn(10,i-s)%dn(10,s)|0)*a:0),c)for(;;){if(0==d){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==yn&&(f[0]=1));break}if(f[d]+=a,f[d]!=yn)break;f[d--]=0,a=1}for(o=f.length;0===f[--o];)f.pop()}return on&&(e.e>h.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Tn(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Tn(-i-1)+o,r&&(n=r-s)>0&&(o+=Tn(n))):i>=s?(o+=Tn(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Tn(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Tn(n))),o}function An(e,t){var r=e[0];for(t*=vn;r>=10;r/=10)t++;return t}function Cn(e,t,r){if(t>wn)throw on=!0,r&&(e.precision=r),Error(un);return En(new e(tn),t,1,!0)}function jn(e,t,r){if(t>bn)throw Error(un);return En(new e(rn),t,r,!0)}function Nn(e){var t=e.length-1,r=t*vn+1;if(t=e[t]){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Tn(e){for(var t="";e--;)t+="0";return t}function Pn(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/vn+4);for(on=!1;;){if(r%2&&Qn((o=o.times(t)).d,s)&&(i=!0),0===(r=fn(r/2))){r=o.d.length-1,i&&0===o.d[r]&&++o.d[r];break}Qn((t=t.times(t)).d,s)}return on=!0,o}function Rn(e){return 1&e.d[e.d.length-1]}function Dn(e,t,r){for(var n,i=new e(t[0]),o=0;++o17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(on=!1,u=p):u=t,a=new d(.03125);e.e>-2;)e=e.times(a),f+=5;for(u+=n=Math.log(dn(2,f))/Math.LN10*2+5|0,r=o=s=new d(1),d.precision=u;;){if(o=En(o.times(e),u,1),r=r.times(++l),xn((a=s.plus(On(o,r,u,1))).d).slice(0,u)===xn(s.d).slice(0,u)){for(i=f;i--;)s=En(s.times(s),u,1);if(null!=t)return d.precision=p,s;if(!(c<3&&Mn(s.d,u-n,h,c)))return En(s,d.precision=p,h,on=!0);d.precision=u+=10,r=o=a=new d(1),l=0,c++}s=a}}function Bn(e,t){var r,n,i,o,s,a,u,c,l,f,d,h=1,p=e,g=p.d,m=p.constructor,y=m.rounding,v=m.precision;if(p.s<0||!g||!g[0]||!p.e&&1==g[0]&&1==g.length)return new m(g&&!g[0]?-1/0:1!=p.s?NaN:g?0:p);if(null==t?(on=!1,l=v):l=t,m.precision=l+=10,n=(r=xn(g)).charAt(0),!(Math.abs(o=p.e)<15e14))return c=Cn(m,l+2,v).times(o+""),p=Bn(new m(n+"."+r.slice(1)),l-10).plus(c),m.precision=v,null==t?En(p,v,y,on=!0):p;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=xn((p=p.times(e)).d)).charAt(0),h++;for(o=p.e,n>1?(p=new m("0."+r),o++):p=new m(n+"."+r.slice(1)),f=p,u=s=p=On(p.minus(1),p.plus(1),l,1),d=En(p.times(p),l,1),i=3;;){if(s=En(s.times(d),l,1),xn((c=u.plus(On(s,new m(i),l,1))).d).slice(0,l)===xn(u.d).slice(0,l)){if(u=u.times(2),0!==o&&(u=u.plus(Cn(m,l+2,v).times(o+""))),u=On(u,new m(h),l,1),null!=t)return m.precision=v,u;if(!Mn(u.d,l-10,y,a))return En(u,m.precision=v,y,on=!0);m.precision=l+=10,c=s=p=On(f.minus(1),f.plus(1),l,1),d=En(p.times(p),l,1),i=a=1}u=c,i+=2}}function zn(e){return String(e.s*e.s/0)}function Un(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);n++);for(i=t.length;48===t.charCodeAt(i-1);--i);if(t=t.slice(n,i)){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%vn,r<0&&(n+=vn),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),mn.test(t))return Un(e,t)}else if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(pn.test(t))r=16,t=t.toLowerCase();else if(hn.test(t))r=2;else{if(!gn.test(t))throw Error(an+t);r=8}for((o=t.search(/p/i))>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),s=(o=t.indexOf("."))>=0,n=e.constructor,s&&(o=(a=(t=t.replace(".","")).length)-o,i=Pn(n,new n(r),o,2*o)),o=l=(c=kn(t,r,yn)).length-1;0===c[o];--o)c.pop();return o<0?new n(0*e.s):(e.e=An(c,l),e.d=c,on=!1,s&&(e=On(e,i,4*a)),u&&(e=e.times(Math.abs(u)<54?dn(2,u):Ti.pow(2,u))),on=!0,e)}function Fn(e,t,r,n,i){var o,s,a,u,c=e.precision,l=Math.ceil(c/vn);for(on=!1,u=r.times(r),a=new e(n);;){if(s=On(a.times(u),new e(t++*t++),c,1),a=i?n.plus(s):n.minus(s),n=On(s.times(u),new e(t++*t++),c,1),void 0!==(s=a.plus(n)).d[l]){for(o=l;s.d[o]===a.d[o]&&o--;);if(-1==o)break}o=a,a=n,n=s,s=o}return on=!0,s.d.length=l+1,s}function qn(e,t){for(var r=e;--t;)r*=e;return r}function Hn(e,t){var r,n=t.s<0,i=jn(e,e.precision,1),o=i.times(.5);if((t=t.abs()).lte(o))return Hr=n?4:1,t;if((r=t.divToInt(i)).isZero())Hr=n?3:2;else{if((t=t.minus(r.times(i))).lte(o))return Hr=Rn(r)?n?2:3:n?4:1,t;Hr=Rn(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Kn(e,t,r,n){var i,o,s,a,u,c,l,f,d,h=e.constructor,p=void 0!==r;if(p?(Sn(r,1,Xr),void 0===n?n=h.rounding:Sn(n,0,8)):(r=h.precision,n=h.rounding),e.isFinite()){for(p?(i=2,16==t?r=4*r-3:8==t&&(r=3*r-2)):i=t,(s=(l=In(e)).indexOf("."))>=0&&(l=l.replace(".",""),(d=new h(1)).e=l.length-s,d.d=kn(In(d),10,i),d.e=d.d.length),o=u=(f=kn(l,10,i)).length;0==f[--u];)f.pop();if(f[0]){if(s<0?o--:((e=new h(e)).d=f,e.e=o,f=(e=On(e,d,r,n,0,i)).d,o=e.e,c=qr),s=f[r],a=i/2,c=c||void 0!==f[r+1],c=n<4?(void 0!==s||c)&&(0===n||n===(e.s<0?3:2)):s>a||s===a&&(4===n||c||6===n&&1&f[r-1]||n===(e.s<0?8:7)),f.length=r,c)for(;++f[--r]>i-1;)f[r]=0,r||(++o,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,l="";s1)if(16==t||8==t){for(s=16==t?4:3,--u;u%s;u++)l+="0";for(u=(f=kn(l,i,t)).length;!f[u-1];--u);for(s=1,l="1.";su)for(o-=u;o--;)l+="0";else ot)return e.length=t,!0}function Vn(e){return new this(e).abs()}function $n(e){return new this(e).acos()}function Yn(e){return new this(e).acosh()}function Gn(e,t){return new this(e).plus(t)}function Zn(e){return new this(e).asin()}function Jn(e){return new this(e).asinh()}function Xn(e){return new this(e).atan()}function ei(e){return new this(e).atanh()}function ti(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?jn(this,n,i):new this(0)).s=e.s:!e.d||t.isZero()?(r=jn(this,o,1).times(.5)).s=e.s:t.s<0?(this.precision=o,this.rounding=1,r=this.atan(On(e,t,o,1)),t=jn(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(On(e,t,o,1)):(r=jn(this,o,1).times(t.s>0?.25:.75)).s=e.s:r=new this(NaN),r}function ri(e){return new this(e).cbrt()}function ni(e){return En(e=new this(e),e.e+1,2)}function ii(e,t,r){return new this(e).clamp(t,r)}function oi(e){if(!e||"object"!=typeof e)throw Error(sn+"Object expected");var t,r,n,i=!0===e.defaults,o=["precision",1,Xr,"rounding",0,8,"toExpNeg",-Jr,0,"toExpPos",0,Jr,"maxE",0,Jr,"minE",-Jr,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2]))throw Error(an+r+": "+n);this[r]=n}if(r="crypto",i&&(this[r]=nn[r]),void 0!==(n=e[r])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(an+r+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(cn);this[r]=!0}else this[r]=!1}return this}function si(e){return new this(e).cos()}function ai(e){return new this(e).cosh()}function ui(e,t){return new this(e).div(t)}function ci(e){return new this(e).exp()}function li(e){return En(e=new this(e),e.e+1,3)}function fi(){var e,t,r=new this(0);for(on=!1,e=0;e=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else{if(!crypto.randomBytes)throw Error(cn);for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else for(;o=10;i/=10)n++;no.maxE?(i.e=NaN,i.d=null):e.e=10;r/=10)t++;return void(on?t>o.maxE?(i.e=NaN,i.d=null):t{const{wallet:t,connected:r}=q(),[n,i]=K("unified-wallet-previously-connected",[]);return(0,D.useEffect)((()=>{if(r&&t){const e=new Set([t.adapter.name,...n]);i([...e])}}),[t,r]),Zr(Ri.Provider,{value:n},e)},Li="undefined"!=typeof window?navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language:"en-US",Bi=new Intl.NumberFormat(Li,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:9});function zi(e,t=4){return`${e.slice(0,t)}...${e.slice(-t)}`}var Ui;(Ui=1.1,Bi.format(Ui)).substring(1,2);class Wi extends E{name="";url="";icon="";supportedTransactionVersions=new Set(["legacy",0]);_keypair=null;readyState=n.NotDetected;constructor({name:e,url:t,icon:r,deepLink:i}){super(),this.name=e,this.url=t,this.icon=r,this.deepLink=i,this.deepLink&&function(){if("undefined"==typeof window||!navigator)return!1;const e=navigator.userAgent.toLowerCase(),t=e.includes("iphone")||e.includes("ipad"),r=e.includes("safari");return t&&r}()&&(this.readyState=n.Loadable)}get connecting(){return!1}get publicKey(){return this._keypair&&this._keypair.publicKey}async connect(){if(this.readyState!==n.Loadable||!this.deepLink)throw new g;window.location.href=this.deepLink()}async disconnect(){this._keypair=null,this.emit("disconnect")}async signTransaction(e){if(!this._keypair)throw new g;return O(e)?e.sign([this._keypair]):e.partialSign(this._keypair),e}}const Fi=(e,t)=>{Pi.log({error:e,adapter:t})};var qi=({wallets:e,config:t,children:r})=>{const n=(0,D.useMemo)((()=>[new be({addressSelector:_e(),appIdentity:{uri:t.metadata.url,icon:"",name:t.metadata.name},authorizationResultCache:Se(),cluster:t.env,onWalletNotFound:ke()}),...e,...(t.hardcodedWallets||[]).map((e=>new Wi(e)))]),[]);return Zr(St,{wallets:n,autoConnect:t.autoConnect,onError:Fi},Zr(Di,null,r))},Hi=function(e,t){return"boolean"==typeof t?t:!e};function Ki(e){var t=(0,D.useRef)();return(0,D.useEffect)((function(){t.current=e})),t.current}var Qi=({open:e,onClose:t,children:r})=>{const n=(0,D.useRef)(null),[i,o]=(0,D.useState)(!1);(0,D.useEffect)((()=>{i||o(e),i&&setTimeout((()=>{o(e)}),150)}),[e]);const s=(0,D.useCallback)((()=>{n.current?.close(),t()}),[t,n]);return(0,D.useEffect)((()=>{if(n.current&&(i?n.current.open||n.current.showModal():n.current.close()),i){const e=n.current;return e?.addEventListener("close",s),()=>{e?.removeEventListener("close",s)}}}),[s,i]),i?Zr("dialog",{role:"dialog","aria-modal":"true",css:["left:0px;top:0px;z-index:50;display:flex;height:100%;width:100%;@keyframes fade-in{0%{opacity:0.2;}100%{opacity:1;}}animation:fade-in 0.15s ease-in-out;cursor:auto;align-items:center;justify-content:center;background-color:rgb(0 0 0 / 0.25);--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);",i&&!e&&{"@keyframes fade-out":{"0%":{opacity:"1"},"100%":{opacity:"0"}},animation:"fade-out 0.15s ease-out",opacity:"0"},"","","",""],ref:n},r):null},Vi=({width:e=24,height:t=24})=>Zr("svg",{width:e,height:t,viewBox:"0 0 24 24",fill:"inherit",xmlns:"http://www.w3.org/2000/svg"},Zr("path",{d:"M12 0C18.6271 0 24 5.37288 24 12C24 18.6271 18.6269 24 12 24C5.37312 24 0 18.6286 0 12C0 5.37144 5.37216 0 12 0Z",fill:"#23C1AA"}),Zr("path",{d:"M10.79 14.55H12.89V14.355C12.89 13.925 13.01 13.55 13.25 13.23C13.49 12.91 13.765 12.605 14.075 12.315C14.315 12.085 14.545 11.85 14.765 11.61C14.985 11.36 15.165 11.09 15.305 10.8C15.455 10.5 15.53 10.16 15.53 9.78C15.53 9.25 15.395 8.75 15.125 8.28C14.855 7.8 14.45 7.41 13.91 7.11C13.38 6.8 12.725 6.645 11.945 6.645C11.305 6.645 10.725 6.765 10.205 7.005C9.69504 7.245 9.27504 7.575 8.94504 7.995C8.62504 8.415 8.42004 8.905 8.33004 9.465L10.415 9.99C10.475 9.61 10.64 9.31 10.91 9.09C11.19 8.86 11.515 8.745 11.885 8.745C12.315 8.745 12.64 8.85 12.86 9.06C13.09 9.26 13.205 9.52 13.205 9.84C13.205 10.15 13.09 10.425 12.86 10.665C12.63 10.895 12.37 11.155 12.08 11.445C11.77 11.765 11.475 12.14 11.195 12.57C10.925 13 10.79 13.545 10.79 14.205V14.55ZM10.73 18H12.98V15.75H10.73V18Z",fill:"white"}));const $i=(0,D.createContext)({walletPrecedence:[],handleConnectClick:async(e,t)=>{},showModal:!1,setShowModal:e=>{},walletlistExplanation:void 0,theme:"light",walletAttachments:void 0,walletModalAttachments:void 0});function Yi(e,t){return`You have tried to ${e} "${t}" on a WalletContext without providing one. Make sure to render a WalletProvider as an ancestor of the component that uses WalletContext`}const Gi={autoConnect:!1,connecting:!1,connected:!1,disconnecting:!1,select(e){Pi.error(Yi("get","select"))},connect:()=>Promise.reject(Pi.error(Yi("get","connect"))),disconnect:()=>Promise.reject(Pi.error(Yi("get","disconnect"))),sendTransaction:(e,t,r)=>Promise.reject(Pi.error(Yi("get","sendTransaction"))),signTransaction:e=>Promise.reject(Pi.error(Yi("get","signTransaction"))),signAllTransactions:e=>Promise.reject(Pi.error(Yi("get","signAllTransactions"))),signMessage:e=>Promise.reject(Pi.error(Yi("get","signMessage")))},Zi=(0,D.createContext)(Gi),Ji=()=>(0,D.useContext)($i),Xi=()=>(0,D.useContext)(Zi),eo={"Connecting...":{zh:"连接中...",vi:"Đang kết nối...",fr:"Connexion...",ja:"接続中...",id:"Sedang menghubungkan...",ru:"Подключение..."},"Connect Wallet":{zh:"连接钱包",vi:"Kết nối ví",fr:"Connecter le portefeuille",ja:"ウォレットに接続する",id:"Hubungkan dompet",ru:"Подключить кошелек"},Connect:{zh:"连接",vi:"Kết nối",fr:"Connecter",ja:"接続",id:"Hubungkan",ru:"Подключить"},"You need to connect a Solana wallet.":{zh:"您需要连接一个 Solana 钱包。",vi:"Bạn cần kết nối ví Solana.",fr:"Vous devez connecter un portefeuille Solana.",ja:"Solanaウォレットを接続する必要があります。",id:"Anda perlu menghubungkan dompet Solana.",ru:"Вам нужно подключить кошелек Solana."},"New here?":{zh:"新来的?",vi:"Mới đến?",fr:"Nouveau ici?",ja:"初めてですか?",id:"Baru disini?",ru:"Новичок?"},"Welcome to DeFi! Create a crypto wallet to get started!":{zh:"欢迎来到 DeFi!创建一个加密钱包吧!",vi:"Chào mừng đến với DeFi! Tạo ví crypto để bắt đầu!",fr:"Bienvenue dans DeFi! Créez un portefeuille crypto pour commencer!",ja:"DeFiへようこそ!暗号ウォレットを作成して始めましょう!",id:"Selamat datang di DeFi! Buat dompet crypto untuk memulai!",ru:"Добро пожаловать в DeFi! Создайте криптокошелек, чтобы начать!"},"Get Started":{zh:"开始",vi:"Bắt đầu",fr:"Commencer",ja:"始める",id:"Mulai",ru:"Начать"},"Popular wallets to get started":{zh:"热门钱包",vi:"Ví phổ biến để bắt đầu",fr:"Portefeuilles populaires pour commencer",ja:"始める人気のウォレット",id:"Dompet populer untuk memulai",ru:"Популярные кошельки для начала"},"More wallets":{zh:"更多钱包",vi:"Thêm ví",fr:"Plus de portefeuilles",ja:"その他のウォレット",id:"Dompet lainnya",ru:"Другие кошельки"},"Once installed, refresh this page":{zh:"安装后,请刷新此页面",vi:"Sau khi cài đặt, làm mới trang này",fr:"Une fois installé, rafraîchissez cette page",ja:"インストールしたら、このページを更新してください",id:"Setelah diinstal, segarkan halaman ini",ru:"После установки обновите эту страницу"},"Go back":{zh:"返回",vi:"Quay lại",fr:"Retourner",ja:"戻る",id:"Kembali",ru:"Назад"},"Recently used":{zh:"最近使用",vi:"Đã sử dụng gần đây",fr:"Utilisé récemment",ja:"最近使用した",id:"Baru saja digunakan",ru:"Недавно использованные"},"Recommended wallets":{zh:"推荐钱包",vi:"Ví được đề xuất",fr:"Portefeuilles recommandés",ja:"おすすめのウォレット",id:"Dompet yang direkomendasikan",ru:"Рекомендуемые кошельки"},"Installed wallets":{zh:"已安装钱包",vi:"Các ví đã cài đặt",fr:"Portefeuilles installés",ja:"インストール済みのウォレット",id:"Dompet yang diinstal",ru:"Установленные кошельки"},"Popular wallets":{zh:"热门钱包",vi:"Ví phổ biến",fr:"Portefeuilles populaires",ja:"人気のウォレット",id:"Dompet populer",ru:"Популярные кошельки"},"Can't find your wallet?":{zh:"找不到您的钱包?",vi:"Không tìm thấy ví của bạn?",fr:"Vous ne trouvez pas votre portefeuille?",ja:"ウォレットが見つかりませんか?",id:"Tidak dapat menemukan dompet Anda?",ru:"Не можете найти свой кошелек?"},"I don't have a wallet":{zh:"我没有钱包",vi:"Tôi không có ví",fr:"Je n'ai pas de portefeuille",ja:"私はウォレットを持っていません",id:"Saya tidak punya dompet",ru:"У меня нет кошелька"},"Have you installed":{zh:"您是否已安装",vi:"Bạn đã cài đặt",fr:"Avez-vous installé",ja:"インストールしましたか",id:"Apakah Anda sudah menginstal",ru:"Вы установили"},Install:{zh:"安装",vi:"Cài đặt",fr:"Installer",ja:"インストール",id:"Memasang",ru:"Установить"},"On mobile:":{zh:"在手机上:",vi:"Trên điện thoại:",fr:"Sur mobile:",ja:"モバイル:",id:"Di ponsel:",ru:"На мобильном:"},"You should open the app instead":{zh:"您应该打开应用程序",vi:"Bạn nên mở ứng dụng thay vì",fr:"Vous devriez ouvrir l'application à la place",ja:"代わりにアプリを開く必要があります",id:"Anda harus membuka aplikasi bukannya",ru:"Вместо этого вы должны открыть приложение"},"On desktop:":{zh:"在桌面上:",vi:"Trên máy tính để bàn:",fr:"Sur ordinateur:",ja:"デスクトップ:",id:"Di desktop:",ru:"На рабочем столе:"},"Install and refresh the page":{zh:"安装并刷新页面",vi:"Cài đặt và làm mới trang",fr:"Installez et actualisez la page",ja:"インストールしてページを更新する",id:"Pasang dan segarkan halaman",ru:"Установите и обновите страницу"}},to=(0,D.createContext)({lang:"en",setLang:()=>{},t:e=>e}),ro=({lang:e,children:t})=>{const[r,n]=(0,D.useState)("en");(0,D.useEffect)((()=>{e&&n(e)}),[e]);const i=(0,D.useCallback)((e=>{if("en"===r)return e;return eo[e]&&eo[e][r]||"not found"}),[r]);return Zr(to.Provider,{value:{lang:r,setLang:n,t:i}},t)},no=()=>(0,D.useContext)(to),io={container:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(249 250 251 / var(--tw-bg-opacity))",":hover":{borderColor:"rgb(0 0 0 / 0.1)","--tw-shadow":"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)","--tw-shadow-colored":"0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}}],dark:[{":hover":{backgroundColor:"rgb(255 255 255 / 0.1)","--tw-shadow":"0 25px 50px -12px rgb(0 0 0 / 0.25)","--tw-shadow-colored":"0 25px 50px -12px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}}],jupiter:[{":hover":{backgroundColor:"rgb(255 255 255 / 0.1)","--tw-shadow":"0 25px 50px -12px rgb(0 0 0 / 0.25)","--tw-shadow-colored":"0 25px 50px -12px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}}]}};var oo={name:"k19fg7",styles:"object-fit:contain"};const so=({wallet:e,width:t=24,height:r=24})=>{const[n,i]=D.useState(!1),o=(0,D.useCallback)((()=>i(!0)),[]);return e&&e.icon&&!n?Zr("span",{style:{minWidth:t,minHeight:r}},Zr("img",{width:t,height:r,src:e.icon,alt:`${e.name} icon`,css:oo,onError:o})):Zr("span",{style:{minWidth:t,minHeight:r}},Zr(Vi,{width:t,height:r}))};var ao={name:"18g8lgp",styles:"overflow:hidden;text-overflow:ellipsis;font-size:0.75rem;line-height:1rem;font-weight:600"};const uo=({handleClick:e,wallet:t})=>{const{theme:r}=Ji(),{t:n}=no(),i=(0,D.useMemo)((()=>t?t.name===ve?n("Mobile"):t.name:""),[t?.name]);return Zr("li",null,Zr("button",{type:"button",onClick:e,css:["display:flex;width:100%;cursor:pointer;align-items:center;> :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)));}border-radius:0.5rem;border-width:1px;border-color:rgb(255 255 255 / 0.1);padding-left:1.25rem;padding-right:1.25rem;padding-top:1rem;padding-bottom:1rem;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;:hover{background-color:rgb(255 255 255 / 0.1);--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);--tw-backdrop-blur:blur(24px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);}",io.container[r],"","","",""]},"undefined"!=typeof window&&screen&&screen.width<=480?Zr(so,{wallet:t,width:24,height:24}):Zr(so,{wallet:t,width:30,height:30}),Zr("span",{css:ao},i)))};var co=({width:e=20,height:t=20})=>Zr("svg",{width:e,height:t,viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Zr("path",{d:"M2.0336 16.2126L8.2336 10.0126L2.0336 3.81263C1.7961 3.57903 1.66172 3.25951 1.66016 2.92669C1.65938 2.59309 1.79141 2.27357 2.02734 2.03763C2.26328 1.80247 2.5828 1.67045 2.9164 1.67201C3.25 1.67357 3.56874 1.80795 3.80234 2.04623L9.99994 8.24623L16.1999 2.04623C16.4335 1.80795 16.7523 1.67357 17.0859 1.67201C17.4187 1.67045 17.739 1.80248 17.9749 2.03763C18.2109 2.27357 18.3429 2.59309 18.3413 2.92669C18.3406 3.25951 18.2062 3.57903 17.9687 3.81263L11.7663 10.0126L17.9663 16.2126C18.2038 16.4462 18.3382 16.7658 18.3397 17.0986C18.3405 17.4322 18.2085 17.7517 17.9725 17.9876C17.7366 18.2228 17.4171 18.3548 17.0835 18.3533C16.7499 18.3517 16.4311 18.2173 16.1975 17.979L9.99994 11.779L3.79994 17.979C3.31088 18.4611 2.52494 18.4579 2.039 17.9736C1.55384 17.4884 1.54994 16.7025 2.03119 16.2126L2.0336 16.2126Z",fill:"currentColor"})),lo=({width:e=10,height:t=10})=>Zr("svg",{width:e,height:t,viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Zr("path",{d:"M4 2V3H1.5V8.5H7V6H8V9C8 9.13261 7.94732 9.25979 7.85355 9.35355C7.75979 9.44732 7.63261 9.5 7.5 9.5H1C0.867392 9.5 0.740215 9.44732 0.646447 9.35355C0.552678 9.25979 0.5 9.13261 0.5 9V2.5C0.5 2.36739 0.552678 2.24021 0.646447 2.14645C0.740215 2.05268 0.867392 2 1 2H4ZM9.5 0.5V4.5H8.5V2.2065L4.6035 6.1035L3.8965 5.3965L7.7925 1.5H5.5V0.5H9.5Z",fill:"currentColor"}));const fo={subtitle:{light:[{color:"rgb(0 0 0 / 0.7)"}],dark:[{color:"rgb(255 255 255 / 0.5)"}],jupiter:[{color:"rgb(255 255 255 / 0.5)"}]},button:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(49 51 59 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))",":hover":{"--tw-bg-opacity":"1",backgroundColor:"rgb(0 0 0 / var(--tw-bg-opacity))"}}],dark:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(49 51 59 / var(--tw-bg-opacity))",":hover":{backgroundColor:"rgb(0 0 0 / 0.3)"}}],jupiter:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(0 0 0 / var(--tw-bg-opacity))",":hover":{backgroundColor:"rgb(0 0 0 / 0.5)"}}]}};var ho={name:"1e4wqln",styles:"@keyframes fade-in{0%{opacity:0.2;}100%{opacity:1;}}animation:fade-in 0.15s ease-in-out;overflow-y:scroll;transition-duration:500ms"},po={name:"17wdgc0",styles:"display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem"},go={name:"z2rh5z",styles:"display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center"},mo={name:"709dbi",styles:"font-size:1rem;line-height:1.5rem;font-weight:600"},yo={name:"1umxcl3",styles:"margin-top:0.75rem;margin-bottom:0.75rem;display:flex;align-items:center;> :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem * var(--tw-space-x-reverse));margin-left:calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));}font-size:0.75rem;line-height:1rem;text-decoration-line:underline"},vo={name:"exiwz9",styles:"margin-top:1.25rem;display:flex;width:100%;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding-left:2.5rem;padding-right:2.5rem;text-align:start"},wo={name:"1ide98v",styles:"font-size:0.75rem;line-height:1rem;font-weight:600"},bo={name:"1x0nakv",styles:"margin-top:0.5rem;list-style-type:disc;padding-left:2rem;font-size:0.75rem;line-height:1rem"},_o={name:"exiwz9",styles:"margin-top:1.25rem;display:flex;width:100%;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding-left:2.5rem;padding-right:2.5rem;text-align:start"},xo={name:"1ide98v",styles:"font-size:0.75rem;line-height:1rem;font-weight:600"},So={name:"1x0nakv",styles:"margin-top:0.5rem;list-style-type:disc;padding-left:2rem;font-size:0.75rem;line-height:1rem"},Mo={name:"1htl0ft",styles:"margin-top:1.25rem;width:100%;border-top-width:1px;border-top-color:rgb(255 255 255 / 0.1)"},ko={name:"ibosxi",styles:"display:flex;width:100%;justify-content:space-between;> :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem * var(--tw-space-x-reverse));margin-left:calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));}padding:1.25rem"},Oo=({adapter:e,onClose:t,onGoOnboarding:r})=>{const{theme:n}=Ji(),{t:i}=no();return Zr("div",{css:ho,className:"hideScrollbar"},Zr("div",{css:po},Zr("img",{src:e.icon,width:100,height:100})),Zr("div",{css:go},Zr("span",{css:mo},i("Have you installed")+` ${e.name}?`),Zr("a",{href:e.url,rel:"noopener noreferrer",target:"_blank",css:yo},Zr("span",null,i("Install")," ",e.name),Zr(lo,null)),Zr("div",{css:vo},Zr("p",{css:wo},i("On mobile:")),Zr("ul",{css:bo},Zr("li",null,i("You should open the app instead")))),Zr("div",{css:_o},Zr("p",{css:xo},i("On desktop:")),Zr("ul",{css:So},Zr("li",null,i("Install and refresh the page")))),Zr("div",{css:Mo}),Zr("div",{css:ko},Zr("button",{type:"button",css:["width:100%;border-radius:0.5rem;border-width:1px;border-color:rgb(255 255 255 / 0.1);padding-left:0.5rem;padding-right:0.5rem;padding-top:1rem;padding-bottom:1rem;font-size:0.75rem;line-height:1;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));",fo.button[n],"","","",""],onClick:r},i("I don't have a wallet")),Zr("button",{type:"button",css:["width:100%;border-radius:0.5rem;border-width:1px;border-color:rgb(255 255 255 / 0.1);padding-left:0.5rem;padding-right:0.5rem;padding-top:1rem;padding-bottom:1rem;font-size:0.75rem;line-height:1;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));",fo.button[n],"","","",""],onClick:t},"← "+i("Go back")))))};new Q.PublicKey("So11111111111111111111111111111111111111112");const Eo=[{id:"Phantom",name:"Phantom",url:"https://phantom.app/",icon:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiB2aWV3Qm94PSIwIDAgMTA4IDEwOCIgZmlsbD0ibm9uZSI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPg==",deepLink:()=>`https://phantom.app/ul/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`},{id:"Solflare",name:"Solflare",url:"https://solflare.com/",icon:"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjUwIiB2aWV3Qm94PSIwIDAgNTAgNTAiIHdpZHRoPSI1MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGxpbmVhckdyYWRpZW50IGlkPSJhIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmMxMGIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmYjNmMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2LjQ3ODM1IiB4Mj0iMzQuOTEwNyIgeGxpbms6aHJlZj0iI2EiIHkxPSI3LjkyIiB5Mj0iMzMuNjU5MyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iYyIgY3g9IjAiIGN5PSIwIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQuOTkyMTg4MzIgMTIuMDYzODc5NjMgLTEyLjE4MTEzNjU1IDUuMDQwNzEwNzQgMjIuNTIwMiAyMC42MTgzKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjEiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggZD0ibTI1LjE3MDggNDcuOTEwNGMuNTI1IDAgLjk1MDcuNDIxLjk1MDcuOTQwM3MtLjQyNTcuOTQwMi0uOTUwNy45NDAyLS45NTA3LS40MjA5LS45NTA3LS45NDAyLjQyNTctLjk0MDMuOTUwNy0uOTQwM3ptLTEuMDMyOC00NC45MTU2NWMuNDY0Ni4wMzgzNi44Mzk4LjM5MDQuOTAyNy44NDY4MWwxLjEzMDcgOC4yMTU3NGMuMzc5OCAyLjcxNDMgMy42NTM1IDMuODkwNCA1LjY3NDMgMi4wNDU5bDExLjMyOTEtMTAuMzExNThjLjI3MzMtLjI0ODczLjY5ODktLjIzMTQ5Ljk1MDcuMDM4NTEuMjMwOS4yNDc3Mi4yMzc5LjYyNjk3LjAxNjEuODgyNzdsLTkuODc5MSAxMS4zOTU4Yy0xLjgxODcgMi4wOTQyLS40NzY4IDUuMzY0MyAyLjI5NTYgNS41OTc4bDguNzE2OC44NDAzYy40MzQxLjA0MTguNzUxNy40MjM0LjcwOTMuODUyNC0uMDM0OS4zNTM3LS4zMDc0LjYzOTUtLjY2MjguNjk0OWwtOS4xNTk0IDEuNDMwMmMtMi42NTkzLjM2MjUtMy44NjM2IDMuNTExNy0yLjEzMzkgNS41NTc2bDMuMjIgMy43OTYxYy4yNTk0LjMwNTguMjE4OC43NjE1LS4wOTA4IDEuMDE3OC0uMjYyMi4yMTcyLS42NDE5LjIyNTYtLjkxMzguMDIwM2wtMy45Njk0LTIuOTk3OGMtMi4xNDIxLTEuNjEwOS01LjIyOTctLjI0MTctNS40NTYxIDIuNDI0M2wtLjg3NDcgMTAuMzk3NmMtLjAzNjIuNDI5NS0uNDE3OC43NDg3LS44NTI1LjcxMy0uMzY5LS4wMzAzLS42NjcxLS4zMDk3LS43MTcxLS42NzIxbC0xLjM4NzEtMTAuMDQzN2MtLjM3MTctMi43MTQ0LTMuNjQ1NC0zLjg5MDQtNS42NzQzLTIuMDQ1OWwtMTIuMDUxOTUgMTAuOTc0Yy0uMjQ5NDcuMjI3MS0uNjM4MDkuMjExNC0uODY4LS4wMzUtLjIxMDk0LS4yMjYyLS4yMTczNS0uNTcyNC0uMDE0OTMtLjgwNmwxMC41MTgxOC0xMi4xMzg1YzEuODE4Ny0yLjA5NDIuNDg0OS01LjM2NDQtMi4yODc2LTUuNTk3OGwtOC43MTg3Mi0uODQwNWMtLjQzNDEzLS4wNDE4LS43NTE3Mi0uNDIzNS0uNzA5MzYtLjg1MjQuMDM0OTMtLjM1MzcuMzA3MzktLjYzOTQuNjYyNy0uNjk1bDkuMTUzMzgtMS40Mjk5YzIuNjU5NC0uMzYyNSAzLjg3MTgtMy41MTE3IDIuMTQyMS01LjU1NzZsLTIuMTkyLTIuNTg0MWMtLjMyMTctLjM3OTItLjI3MTMtLjk0NDMuMTEyNi0xLjI2MjEuMzI1My0uMjY5NC43OTYzLS4yNzk3IDEuMTMzNC0uMDI0OWwyLjY5MTggMi4wMzQ3YzIuMTQyMSAxLjYxMDkgNS4yMjk3LjI0MTcgNS40NTYxLTIuNDI0M2wuNzI0MS04LjU1OTk4Yy4wNDU3LS41NDA4LjUyNjUtLjk0MjU3IDEuMDczOS0uODk3Mzd6bS0yMy4xODczMyAyMC40Mzk2NWMuNTI1MDQgMCAuOTUwNjcuNDIxLjk1MDY3Ljk0MDNzLS40MjU2My45NDAzLS45NTA2Ny45NDAzYy0uNTI1MDQxIDAtLjk1MDY3LS40MjEtLjk1MDY3LS45NDAzcy40MjU2MjktLjk0MDMuOTUwNjctLjk0MDN6bTQ3LjY3OTczLS45NTQ3Yy41MjUgMCAuOTUwNy40MjEuOTUwNy45NDAzcy0uNDI1Ny45NDAyLS45NTA3Ljk0MDItLjk1MDctLjQyMDktLjk1MDctLjk0MDIuNDI1Ny0uOTQwMy45NTA3LS45NDAzem0tMjQuNjI5Ni0yMi40Nzk3Yy41MjUgMCAuOTUwNi40MjA5NzMuOTUwNi45NDAyNyAwIC41MTkzLS40MjU2Ljk0MDI3LS45NTA2Ljk0MDI3LS41MjUxIDAtLjk1MDctLjQyMDk3LS45NTA3LS45NDAyNyAwLS41MTkyOTcuNDI1Ni0uOTQwMjcuOTUwNy0uOTQwMjd6IiBmaWxsPSJ1cmwoI2IpIi8+PHBhdGggZD0ibTI0LjU3MSAzMi43NzkyYzQuOTU5NiAwIDguOTgwMi0zLjk3NjUgOC45ODAyLTguODgxOSAwLTQuOTA1My00LjAyMDYtOC44ODE5LTguOTgwMi04Ljg4MTlzLTguOTgwMiAzLjk3NjYtOC45ODAyIDguODgxOWMwIDQuOTA1NCA0LjAyMDYgOC44ODE5IDguOTgwMiA4Ljg4MTl6IiBmaWxsPSJ1cmwoI2MpIi8+PC9zdmc+",deepLink:()=>`https://solflare.com/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`},{id:"Backpack",name:"Backpack",url:"https://www.backpack.app/",icon:"data:image/png;base64,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"},{id:"Magic Eden",name:"Magic Eden",url:"https://wallet.magiceden.io/",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiByeD0iMTEzLjc3OCIgZmlsbD0iIzFDMTMyNiIvPgo8cGF0aCBkPSJNMzI2LjYyMyAyMDcuMDA2TDM0Ni4xMjcgMjI5LjkyM0MzNDguMzYgMjMyLjQ5NyAzNTAuMzQgMjM0LjYxNCAzNTEuMTQgMjM1LjgxOEMzNTYuOTczIDI0MS42MTUgMzYwLjI0NCAyNDkuNDUgMzYwLjIzOSAyNTcuNjE0QzM1OS42OTIgMjY3LjI0NSAzNTMuNDE1IDI3My44MDUgMzQ3LjYwMSAyODAuODIxTDMzMy45NTMgMjk2Ljg0NkwzMjYuODMzIDMwNS4xNDlDMzI2LjU3OCAzMDUuNDM1IDMyNi40MTMgMzA1Ljc4OSAzMjYuMzYgMzA2LjE2N0MzMjYuMzA2IDMwNi41NDQgMzI2LjM2NiAzMDYuOTI5IDMyNi41MzEgMzA3LjI3M0MzMjYuNjk3IDMwNy42MTggMzI2Ljk2MiAzMDcuOTA3IDMyNy4yOTIgMzA4LjEwNUMzMjcuNjIzIDMwOC4zMDMgMzI4LjAwNSAzMDguNDAxIDMyOC4zOTIgMzA4LjM4N0gzOTkuNTQzQzQxMC40MTEgMzA4LjM4NyA0MjQuMTAyIDMxNy41MiA0MjMuMzAyIDMzMS4zODdDNDIzLjI4IDMzNy42ODkgNDIwLjcyOSAzNDMuNzI3IDQxNi4yMDcgMzQ4LjE4M0M0MTEuNjg1IDM1Mi42NCA0MDUuNTU5IDM1NS4xNTMgMzk5LjE2NCAzNTUuMTc1SDI4Ny43NEMyODAuNDEgMzU1LjE3NSAyNjAuNjk1IDM1NS45NjQgMjU1LjE3NyAzMzkuMTVDMjU0LjAwMyAzMzUuNjM3IDI1My44NDMgMzMxLjg3MSAyNTQuNzE0IDMyOC4yNzNDMjU2LjMxOCAzMjIuOTUyIDI1OC44NTUgMzE3Ljk1IDI2Mi4yMTIgMzEzLjQ5M0MyNjcuODE1IDMwNS4xOSAyNzMuODgxIDI5Ni44ODcgMjc5Ljg2MyAyODguODMzQzI4Ny41NzIgMjc4LjI4OCAyOTUuNDkyIDI2OC4wNzUgMzAzLjI4NSAyNTcuMzIzQzMwMy41NjIgMjU2Ljk3MyAzMDMuNzEyIDI1Ni41NDIgMzAzLjcxMiAyNTYuMDk4QzMwMy43MTIgMjU1LjY1NSAzMDMuNTYyIDI1NS4yMjQgMzAzLjI4NSAyNTQuODc0TDI3NC45NzYgMjIxLjY2MUMyNzQuNzkyIDIyMS40MiAyNzQuNTUzIDIyMS4yMjUgMjc0LjI3OSAyMjEuMDkxQzI3NC4wMDUgMjIwLjk1NiAyNzMuNzAzIDIyMC44ODYgMjczLjM5NiAyMjAuODg2QzI3My4wOSAyMjAuODg2IDI3Mi43ODggMjIwLjk1NiAyNzIuNTE0IDIyMS4wOTFDMjcyLjI0IDIyMS4yMjUgMjcyLjAwMSAyMjEuNDIgMjcxLjgxNyAyMjEuNjYxQzI2NC4yMzQgMjMxLjc0OSAyMzEuMDM5IDI3Ni40MiAyMjMuOTYyIDI4NS40N0MyMTYuODg0IDI5NC41MjEgMTk5LjQ0NCAyOTUuMDE5IDE4OS43OTcgMjg1LjQ3TDE0NS41MjMgMjQxLjY3MkMxNDUuMjQgMjQxLjM5MiAxNDQuODc5IDI0MS4yMDEgMTQ0LjQ4NyAyNDEuMTI0QzE0NC4wOTQgMjQxLjA0NyAxNDMuNjg2IDI0MS4wODYgMTQzLjMxNiAyNDEuMjM4QzE0Mi45NDYgMjQxLjM4OSAxNDIuNjMgMjQxLjY0NSAxNDIuNDA4IDI0MS45NzRDMTQyLjE4NiAyNDIuMzAyIDE0Mi4wNjggMjQyLjY4OCAxNDIuMDY5IDI0My4wODNWMzI3LjMxOEMxNDIuMTczIDMzMy4yOTYgMTQwLjM3NyAzMzkuMTU2IDEzNi45MzIgMzQ0LjA3N0MxMzMuNDg3IDM0OC45OTggMTI4LjU2NiAzNTIuNzMzIDEyMi44NTkgMzU0Ljc2QzExOS4yMTIgMzU2LjAxMSAxMTUuMzE1IDM1Ni4zODQgMTExLjQ5MiAzNTUuODQ5QzEwNy42NjkgMzU1LjMxNCAxMDQuMDMxIDM1My44ODYgMTAwLjg4MiAzNTEuNjg0Qzk3LjczMjggMzQ5LjQ4MyA5NS4xNjMyIDM0Ni41NzEgOTMuMzg3NyAzNDMuMTkxQzkxLjYxMjEgMzM5LjgxMiA5MC42ODIxIDMzNi4wNjQgOTAuNjc1IDMzMi4yNThWMTgwLjgxQzkwLjkyODggMTc1LjM1MiA5Mi45MjE1IDE3MC4xMTIgOTYuMzcgMTY1LjgzNEM5OS44MTg1IDE2MS41NTYgMTA0LjU0NyAxNTguNDU4IDEwOS44ODQgMTU2Ljk4QzExNC40NjMgMTU1Ljc3OCAxMTkuMjgyIDE1NS43OSAxMjMuODU0IDE1Ny4wMTVDMTI4LjQyNiAxNTguMjQgMTMyLjU4OCAxNjAuNjM0IDEzNS45MTggMTYzLjk1NUwyMDMuOTk0IDIzMS4xMjdDMjA0LjE5OCAyMzEuMzMxIDIwNC40NDQgMjMxLjQ4OCAyMDQuNzE3IDIzMS41ODhDMjA0Ljk4OSAyMzEuNjg3IDIwNS4yOCAyMzEuNzI3IDIwNS41NyAyMzEuNzAzQzIwNS44NTkgMjMxLjY3OSAyMDYuMTQgMjMxLjU5MyAyMDYuMzkyIDIzMS40NUMyMDYuNjQzIDIzMS4zMDggMjA2Ljg2IDIzMS4xMTIgMjA3LjAyNyAyMzAuODc4TDI1NS4zODggMTY0LjkxQzI1Ny42MjIgMTYyLjIzMiAyNjAuNDI0IDE2MC4wNjcgMjYzLjU5NyAxNTguNTY5QzI2Ni43NyAxNTcuMDcgMjcwLjIzNiAxNTYuMjczIDI3My43NTUgMTU2LjIzM0gzOTkuNTQzQzQwMi45ODUgMTU2LjIzOCA0MDYuMzg3IDE1Ni45NjggNDA5LjUyIDE1OC4zNzRDNDEyLjY1MyAxNTkuNzc5IDQxNS40NDYgMTYxLjgyOCA0MTcuNzExIDE2NC4zODJDNDE5Ljk3NiAxNjYuOTM3IDQyMS42NjIgMTY5LjkzOSA0MjIuNjU1IDE3My4xODdDNDIzLjY0OCAxNzYuNDM1IDQyMy45MjYgMTc5Ljg1NSA0MjMuNDcgMTgzLjIxOEM0MjIuNTg0IDE4OS4wNTEgNDE5LjU4MSAxOTQuMzcgNDE1LjAxOCAxOTguMTg3QzQxMC40NTUgMjAyLjAwNCA0MDQuNjQzIDIwNC4wNjEgMzk4LjY1OCAyMDMuOTc2SDMyOC4yMjNDMzI3Ljg2OSAyMDMuOTg0IDMyNy41MjQgMjA0LjA4NiAzMjcuMjI0IDIwNC4yNzFDMzI2LjkyNCAyMDQuNDU1IDMyNi42NzkgMjA0LjcxNiAzMjYuNTE1IDIwNS4wMjVDMzI2LjM1MiAyMDUuMzM1IDMyNi4yNzYgMjA1LjY4MiAzMjYuMjk0IDIwNi4wM0MzMjYuMzEzIDIwNi4zNzkgMzI2LjQyNyAyMDYuNzE2IDMyNi42MjMgMjA3LjAwNloiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF80MDJfMTQ1KSIvPgo8ZGVmcz4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQwMl8xNDUiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTEuNjQyOCAxNTYuMDg3KSByb3RhdGUoMzEuODUyNikgc2NhbGUoMzkzLjE4NyAzMjAuOTA5KSI+CjxzdG9wIHN0b3AtY29sb3I9IiM3NTAwRUIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ4NjQyIiBzdG9wLWNvbG9yPSIjRTQyNTc1Ii8+CjxzdG9wIG9mZnNldD0iMC43OTE2NjciIHN0b3AtY29sb3I9IiNFNDI1NzUiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkY2OTE0Ii8+CjwvcmFkaWFsR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg=="},{id:"Coinbase Wallet",name:"Coinbase Wallet",url:"https://www.coinbase.com/wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8Y2lyY2xlIGN4PSI1MTIiIGN5PSI1MTIiIHI9IjUxMiIgZmlsbD0iIzAwNTJGRiIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1MiA1MTJDMTUyIDcxMC44MjMgMzEzLjE3NyA4NzIgNTEyIDg3MkM3MTAuODIzIDg3MiA4NzIgNzEwLjgyMyA4NzIgNTEyQzg3MiAzMTMuMTc3IDcxMC44MjMgMTUyIDUxMiAxNTJDMzEzLjE3NyAxNTIgMTUyIDMxMy4xNzcgMTUyIDUxMlpNNDIwIDM5NkM0MDYuNzQ1IDM5NiAzOTYgNDA2Ljc0NSAzOTYgNDIwVjYwNEMzOTYgNjE3LjI1NSA0MDYuNzQ1IDYyOCA0MjAgNjI4SDYwNEM2MTcuMjU1IDYyOCA2MjggNjE3LjI1NSA2MjggNjA0VjQyMEM2MjggNDA2Ljc0NSA2MTcuMjU1IDM5NiA2MDQgMzk2SDQyMFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="},{id:"OKX Wallet",name:"OKX Wallet",url:"https://www.okx.com/web3",icon:"https://station.jup.ag/img/wallet/glow.png"}],Io={subtitle:{light:[{color:"rgb(0 0 0 / 0.7)"}],dark:[{color:"rgb(255 255 255 / 0.5)"}],jupiter:[{color:"rgb(255 255 255 / 0.5)"}]},button:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(49 51 59 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))",":hover":{"--tw-bg-opacity":"1",backgroundColor:"rgb(0 0 0 / var(--tw-bg-opacity))"}}],dark:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(49 51 59 / var(--tw-bg-opacity))",":hover":{backgroundColor:"rgb(0 0 0 / 0.3)"}}],jupiter:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(0 0 0 / var(--tw-bg-opacity))",":hover":{backgroundColor:"rgb(0 0 0 / 0.5)"}}]},walletButton:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(249 250 251 / var(--tw-bg-opacity))",":hover":{backgroundColor:"rgb(0 0 0 / 0.05)"}}],dark:[{borderWidth:"1px",borderColor:"rgb(255 255 255 / 0.1)",backgroundColor:"rgb(255 255 255 / 0.1)","--tw-shadow":"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)","--tw-shadow-colored":"0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)",":hover":{backgroundColor:"rgb(255 255 255 / 0.2)"}}],jupiter:[{borderWidth:"1px",borderColor:"rgb(255 255 255 / 0.1)",backgroundColor:"rgb(255 255 255 / 0.05)","--tw-shadow":"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)","--tw-shadow-colored":"0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)",":hover":{backgroundColor:"rgb(255 255 255 / 0.2)"}}]},externalIcon:{light:[{color:"rgb(0 0 0 / 0.3)"}],dark:[{color:"rgb(255 255 255 / 0.3)"}],jupiter:[{color:"rgb(255 255 255 / 0.3)"}]}};var Ao={name:"tfnfo2",styles:"display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem"},Co={name:"1u83koa",styles:"margin-top:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center"},jo={name:"b3sgxl",styles:"font-size:1.125rem;line-height:1.75rem;font-weight:600"},No={name:"1aejh3u",styles:"margin-top:1.5rem;width:100%"};const To=({flow:e,setFlow:t,onClose:r,showBack:n})=>{const{theme:i}=Ji(),{t:o}=no();return Zr("div",{css:Ao},Zr("img",{src:"https://unified.jup.ag/new_user_onboarding.png",width:160,height:160}),Zr("div",{css:Co},Zr("span",{css:jo},o("New here?")),Zr("span",{css:["margin-top:0.75rem;font-size:0.875rem;line-height:1.25rem;",Io.subtitle[i],"","","",""]},o("Welcome to DeFi! Create a crypto wallet to get started!"))),Zr("div",{css:No},Zr("button",{type:"button",css:["width:100%;border-radius:0.5rem;border-width:1px;border-color:rgb(255 255 255 / 0.1);padding-top:1.25rem;padding-bottom:1.25rem;font-size:1rem;line-height:1;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));",Io.button[i],"","","",""],onClick:()=>t("Get Wallet")},o("Get Started"))),n&&Zr("button",{type:"button",css:["margin-top:0.75rem;font-size:0.75rem;line-height:1rem;font-weight:600;color:rgb(255 255 255 / 0.5);",Io.subtitle[i],"","","",""],onClick:()=>r()},"← "+o("Go back")))};var Po={name:"1hxjivg",styles:"display:flex;flex-direction:column;justify-content:center;padding-left:2.5rem;padding-right:2.5rem;padding-top:0.75rem;padding-bottom:0.75rem"},Ro={name:"709dbi",styles:"font-size:1rem;line-height:1.5rem;font-weight:600"},Do={name:"vgb2l1",styles:"margin-top:1rem;width:100%;> :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse));}"};const Lo=({flow:e,setFlow:t})=>{const{theme:r}=Ji(),{t:n}=no();return Zr("div",{css:Po},Zr("span",{css:Ro},n("Popular wallets to get started")),Zr("div",{css:Do},Eo.map(((e,t)=>Zr("a",{href:e.url,key:t,target:"_blank",css:["display:flex;width:100%;align-items:center;> :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)));}border-radius:0.5rem;padding-left:1.25rem;padding-right:1.25rem;padding-top:1rem;padding-bottom:1rem;font-size:0.875rem;line-height:1.25rem;font-weight:600;",Io.walletButton[r],"","","",""]},Zr("img",{src:e.icon,width:20,height:20,alt:e.name}),Zr("span",null,e.name)))),Zr("a",{href:"https://station.jup.ag/partners?category=Wallets",target:"_blank",css:["display:flex;width:100%;align-items:center;> :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)));}border-radius:0.5rem;padding-left:1.25rem;padding-right:1.25rem;padding-top:1rem;padding-bottom:1rem;font-size:0.875rem;line-height:1.25rem;font-weight:600;",Io.walletButton[r],"","","",""]},Zr("div",{css:["display:flex;height:1.25rem;width:1.25rem;align-items:center;fill:currentColor;padding:0.125rem;",Io.externalIcon[r],"","","",""]},Zr(lo,{width:16,height:16})),Zr("span",null,n("More wallets")))),Zr("span",{css:["margin-top:0.75rem;text-align:center;font-size:0.75rem;line-height:1rem;",Io.subtitle[r],"","","",""]},n("Once installed, refresh this page")),Zr("button",{type:"button",css:["margin-top:0.75rem;font-size:0.75rem;line-height:1rem;font-weight:600;color:rgb(255 255 255 / 0.5);",Io.subtitle[r],"","","",""],onClick:()=>t("Onboarding")},"← "+n("Go back")))},Bo=({onClose:e,showBack:t})=>{const[r,n]=(0,D.useState)("Onboarding"),[i,o]=(0,D.useState)(!1),s=(0,D.useRef)(null),a=e=>{o(!0),setTimeout((()=>{s.current?.scrollTo(0,0),o(!1),n(e)}),200)};return Zr("div",{ref:s,css:["@keyframes fade-in{0%{opacity:0.2;}100%{opacity:1;}}animation:fade-in 0.15s ease-in-out;overflow-y:scroll;transition-duration:500ms;",i?{"@keyframes fade-out":{"0%":{opacity:"1"},"100%":{opacity:"0"}},animation:"fade-out 0.15s ease-out",opacity:"0"}:"","","","",""],className:"hideScrollbar"},"Onboarding"===r?Zr(To,{showBack:t,flow:r,setFlow:a,onClose:e}):null,"Get Wallet"===r?Zr(Lo,{flow:r,setFlow:a}):null)},zo={container:{light:[{"--tw-bg-opacity":"1 !important",backgroundColor:"rgb(255 255 255 / var(--tw-bg-opacity)) !important","--tw-text-opacity":"1",color:"rgb(0 0 0 / var(--tw-text-opacity))","--tw-shadow":"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","--tw-shadow-colored":"0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}],dark:[{borderWidth:"1px",borderColor:"rgb(255 255 255 / 0.1)","--tw-bg-opacity":"1 !important",backgroundColor:"rgb(58 59 67 / var(--tw-bg-opacity)) !important","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}],jupiter:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(49 62 76 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}]},shades:{light:[{pointerEvents:"none",backgroundImage:"linear-gradient(to top, var(--tw-gradient-stops))","--tw-gradient-from":"#ffffff var(--tw-gradient-from-position)","--tw-gradient-to":"transparent var(--tw-gradient-to-position)","--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}],dark:[{pointerEvents:"none",backgroundImage:"linear-gradient(to top, var(--tw-gradient-stops))","--tw-gradient-from":"#3A3B43 var(--tw-gradient-from-position)","--tw-gradient-to":"transparent var(--tw-gradient-to-position)","--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}],jupiter:[{pointerEvents:"none",backgroundImage:"linear-gradient(to top, var(--tw-gradient-stops))","--tw-gradient-from":"rgb(49, 62, 76) var(--tw-gradient-from-position)","--tw-gradient-to":"transparent var(--tw-gradient-to-position)","--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}]},walletItem:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(249 250 251 / var(--tw-bg-opacity))",":hover":{borderColor:"rgb(0 0 0 / 0.1)","--tw-shadow":"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)","--tw-shadow-colored":"0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}}],dark:[{":hover":{backgroundColor:"rgb(255 255 255 / 0.1)","--tw-shadow":"0 25px 50px -12px rgb(0 0 0 / 0.25)","--tw-shadow-colored":"0 25px 50px -12px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}}],jupiter:[{":hover":{backgroundColor:"rgb(255 255 255 / 0.1)","--tw-shadow":"0 25px 50px -12px rgb(0 0 0 / 0.25)","--tw-shadow-colored":"0 25px 50px -12px var(--tw-shadow-color)",boxShadow:"var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)"}}]},subtitle:{light:[{color:"rgb(0 0 0 / 0.5)"}],dark:[{color:"rgb(255 255 255 / 0.5)"}],jupiter:[{color:"rgb(255 255 255 / 0.5)"}]},header:{light:[{borderBottomWidth:"1px"}],dark:[],jupiter:[]},text:{light:[{"--tw-text-opacity":"1",color:"rgb(0 0 0 / var(--tw-text-opacity))"}],dark:[{"--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}],jupiter:[{"--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}]}};var Uo={name:"16ceglb",styles:"font-weight:600"},Wo={name:"1o7lixs",styles:"position:absolute;right:1rem;top:1rem"};const Fo=({onClose:e})=>{const{theme:t}=Ji(),{t:r}=no();return Zr("div",{css:["display:flex;justify-content:space-between;padding-left:1.25rem;padding-right:1.25rem;padding-top:1.5rem;padding-bottom:1.5rem;line-height:1;",zo.header[t],"","","",""]},Zr("div",null,Zr("div",{css:Uo},Zr("span",null,r("Connect Wallet"))),Zr("div",{css:["margin-top:0.25rem;font-size:0.75rem;line-height:1rem;",zo.subtitle[t],"","","",""]},Zr("span",null,r("You need to connect a Solana wallet.")))),Zr("button",{css:Wo,onClick:e},Zr(co,{width:12,height:12})))};var qo={name:"1rigx3j",styles:"margin-top:1rem;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.5rem;padding-bottom:1rem"},Ho={name:"eojnhe",styles:"margin-top:1.5rem;font-size:0.75rem;line-height:1rem;font-weight:600"},Ko={name:"1rigx3j",styles:"margin-top:1rem;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.5rem;padding-bottom:1rem"},Qo={name:"10abz9y",styles:"margin-top:1.25rem;display:flex;width:100%;cursor:pointer;align-items:center;justify-content:space-between"},Vo={name:"1ide98v",styles:"font-size:0.75rem;line-height:1rem;font-weight:600"};const $o=({list:e,onToggle:t,isOpen:r})=>{const{handleConnectClick:i,walletlistExplanation:o,walletAttachments:s,theme:a}=Ji(),{t:u}=no(),[c,l]=(0,D.useState)(!1),[f,d]=(0,D.useState)(!1),h=D.useCallback(((e,t)=>{t.readyState!==n.NotDetected?i(e,t):d(t)}),[]),p=(0,D.useMemo)((()=>Zr("div",null,Zr("div",{css:qo,translate:"no"},e.others.map(((e,t)=>Zr("ul",{key:t},Zr(uo,{handleClick:t=>h(t,e),wallet:e}))))),"Onboarding"!==e.highlightedBy&&o?Zr("div",{css:["font-size:0.75rem;line-height:1rem;font-weight:600;text-decoration-line:underline;",e.others.length>6?{marginBottom:"2rem"}:"","","","",""]},Zr("a",{href:o.href,target:"_blank",rel:"noopener noreferrer"},Zr("span",null,u("Can't find your wallet?")))):null)),[i,e.others]),g=(0,D.useMemo)((()=>0===e.highlight.length&&0===e.others.length),[e]);return(0,D.useEffect)((()=>{g&&l(!0)}),[g]),c?Zr(Bo,{showBack:!g,onClose:()=>l(!1)}):f?Zr(Oo,{adapter:f,onClose:()=>d(!1),onGoOnboarding:()=>{l(!0),d(!1)}}):Zr(D.Fragment,null,Zr("div",{className:"hideScrollbar",css:["position:relative;height:100%;overflow-y:auto;padding-left:1.25rem;padding-right:1.25rem;padding-bottom:2rem;padding-top:0.75rem;",r&&{marginBottom:"1.75rem"},"","","",""]},Zr("span",{css:Ho},"PreviouslyConnected"===e.highlightedBy?u("Recently used"):null,"TopAndRecommended"===e.highlightedBy?u("Recommended wallets"):null),Zr("div",null,Zr("div",{css:Ko,translate:"no"},e.highlight.map(((e,t)=>Zr("ul",{key:t},Zr(uo,{handleClick:t=>h(t,e),wallet:e})))))),e.others.length>0?Zr(D.Fragment,null,Zr("button",{type:"button",css:Qo,onClick:t},Zr("span",{css:Vo},Zr("span",{css:[zo.text[a],"","","",""]},u("More wallets")))),p):null),r&&e.others.length>6?Zr(D.Fragment,null,Zr("div",{css:["position:absolute;bottom:1.75rem;left:0px;z-index:50;display:block;height:5rem;width:100%;",zo.shades[a],"","","",""]})):null)},Yo={[n.Installed]:1,[n.Loadable]:2,[n.NotDetected]:3,[n.Unsupported]:3},Go=["Jupiter Mobile","Phantom","Solflare","Backpack"],Zo=e=>(t,r)=>{if(!e)return 0;const n=e.indexOf(t.name),i=e.indexOf(r.name);return-1===n&&-1===i?0:n>=0?-1===i?-1:n-i:i>=0?-1===n?1:i-n:0};var Jo={name:"1ng0ss1",styles:"border-top-width:1px;border-color:rgb(255 255 255 / 0.1)"},Xo=({onClose:e})=>{const{wallets:t}=Xi(),{walletPrecedence:r,theme:i,walletModalAttachments:o}=Ji(),[s,a]=(f=!1,(0,D.useReducer)(Hi,f)),u=(0,D.useContext)(Ri),c=(0,D.useMemo)((()=>{const e=t.reduce(((e,t)=>{const r=t.adapter.name,i=u.indexOf(r);if(i>=0)return e.previouslyConnected[i]=t.adapter,e;if(t.readyState===n.Installed)return e.installed.push(t.adapter),e;const o=Go.indexOf(r);return o>=0?(e.top3[o]=t.adapter,e):t.readyState===n.Loadable||t.readyState===n.NotDetected?(e.loadable.push(t.adapter),e):e}),{previouslyConnected:[],installed:[],top3:[],loadable:[],notDetected:[]});if(e.previouslyConnected.length>0){const{previouslyConnected:t,...n}=e,i=e.previouslyConnected.slice(0,3);let o=Object.values(n).flat().sort(((e,t)=>Yo[e.readyState]-Yo[t.readyState])).sort(Zo(r||[]));return o.unshift(...e.previouslyConnected.slice(3,e.previouslyConnected.length)),o=o.filter(Boolean),{highlightedBy:"PreviouslyConnected",highlight:i,others:o}}if(e.installed.length>0){const{installed:t,top3:n,...i}=e,o=[...t.slice(0,3),...n.filter(Boolean)].filter(Boolean),s=Object.values(i).flat().sort(((e,t)=>Yo[e.readyState]-Yo[t.readyState])).sort(Zo(r||[]));return s.unshift(...e.installed.slice(3,e.installed.length)),{highlightedBy:"TopAndRecommended",highlight:o,others:s}}if(0===e.loadable.length)return{highlightedBy:"Onboarding",highlight:[],others:[]};const{top3:i,...o}=e;return{highlightedBy:"TopWallet",highlight:i,others:Object.values(o).flat().sort(((e,t)=>Yo[e.readyState]-Yo[t.readyState])).sort(Zo(r||[]))}}),[t,u]),l=(0,D.useRef)(null);var f,d,h;return d=l,h=e,(0,D.useEffect)((()=>{const e=e=>{d.current&&!d.current.contains(e.target)&&h(e)};return document.addEventListener("mouseup",e),()=>{document.removeEventListener("mouseup",e)}}),[d,h]),Zr("div",{ref:l,css:["position:relative;display:flex;max-height:90vh;width:100%;max-width:28rem;flex-direction:column;overflow:hidden;border-radius:0.75rem;transition-property:height;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:500ms;@media (min-width: 1024px){max-height:576px;}",zo.container[i],"","","",""]},Zr(Fo,{onClose:e}),Zr("div",{css:Jo}),Zr($o,{list:c,onToggle:a,isOpen:s}),o?.footer?Zr(D.Fragment,null,o?.footer):null)};const es=({children:e})=>{const t=q(),r=(0,D.useMemo)((()=>({...t,connect:async()=>{try{return await t.connect()}catch(e){}}})),[t]);return Zr(Zi.Provider,{value:r},e)},ts=({config:e,children:t})=>{const{publicKey:r,wallet:i,select:o,connect:s}=Xi(),a=Ki(r),u=Ki(i),[c,l]=(0,D.useState)(!1);(0,D.useEffect)((()=>{if(c&&!e.autoConnect&&i?.adapter.name){try{s()}catch(e){}l(!1)}}),[c,i?.adapter.name]);const[f,d]=(0,D.useState)(!1),h=(0,D.useCallback)((async(t,r)=>{t.preventDefault();try{if(d(!1),e.notificationCallback?.onConnecting({publicKey:"",shortAddress:"",walletName:r.name,metadata:{name:r.name,url:r.url,icon:r.icon,supportedTransactionVersions:r.supportedTransactionVersions}}),o(r.name),e.autoConnect||l(!0),r.readyState===n.NotDetected)throw n.NotDetected}catch(t){Pi.log(t),e.notificationCallback?.onNotInstalled({publicKey:"",shortAddress:"",walletName:r.name,metadata:{name:r.name,url:r.url,icon:r.icon,supportedTransactionVersions:r.supportedTransactionVersions}})}}),[o,s,i?.adapter.name]);return(0,D.useEffect)((()=>{!u||i?r&&i&&e.notificationCallback?.onConnect({publicKey:r.toString(),shortAddress:zi(r.toString()),walletName:i.adapter.name,metadata:{name:i.adapter.name,url:i.adapter.url,icon:i.adapter.icon,supportedTransactionVersions:i.adapter.supportedTransactionVersions}}):e.notificationCallback?.onDisconnect({publicKey:a?.toString()||"",shortAddress:zi(a?.toString()||""),walletName:u?.adapter.name||"",metadata:{name:u?.adapter.name,url:u?.adapter.url,icon:u?.adapter.icon,supportedTransactionVersions:u?.adapter.supportedTransactionVersions}})}),[i,r,u]),Zr($i.Provider,{value:{walletPrecedence:e.walletPrecedence||[],handleConnectClick:h,showModal:f,setShowModal:d,walletlistExplanation:e.walletlistExplanation,theme:e.theme||"light",walletAttachments:e.walletAttachments||{},walletModalAttachments:e.walletModalAttachments||{}}},Zr(Qi,{open:f,onClose:()=>d(!1)},Zr(Xo,{onClose:()=>d(!1)})),t)},rs=({wallets:e,config:t,children:r})=>Zr(ro,{lang:t.lang},Zr(qi,{wallets:e,config:t},Zr(es,null,Zr(ts,{config:t},r)))),ns={container:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(255 255 255 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(0 0 0 / var(--tw-text-opacity))"}],dark:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(25 27 31 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}],jupiter:[{backgroundColor:"rgba(28, 41, 54, 1)","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}]},text:{light:[{"--tw-text-opacity":"1",color:"rgb(0 0 0 / var(--tw-text-opacity))"}],dark:[{"--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}],jupiter:[{"--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}]}};var is={name:"ncbns2",styles:"display:flex;height:1rem;width:1rem;align-items:center;justify-content:center;border-radius:9999px"};const os=({onClick:e,className:t})=>{const{wallet:r,publicKey:n}=q(),{theme:i}=Ji();return r&&n?Zr("button",{type:"button",onClick:e,css:[ns.container[i],"display:flex;height:1.75rem;cursor:pointer;align-items:center;border-radius:1rem;padding-left:0.75rem;padding-right:0.75rem;padding-top:0.5rem;padding-bottom:0.5rem;","","",""],className:t},Zr("span",{css:is,style:{position:"relative"}},Zr("img",{alt:"Wallet logo",width:16,height:16,src:r?.adapter?.icon})),Zr("span",{css:["margin-left:0.5rem;font-size:0.75rem;line-height:1rem;",ns.text[i],"","","",""]},zi(`${n}`))):null},ss={container:{light:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(255 255 255 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(0 0 0 / var(--tw-text-opacity))"}],dark:[{"--tw-bg-opacity":"1",backgroundColor:"rgb(49 51 59 / var(--tw-bg-opacity))","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}],jupiter:[{backgroundColor:"rgba(28, 41, 54, 1)","--tw-text-opacity":"1",color:"rgb(255 255 255 / var(--tw-text-opacity))"}]}};var as={name:"ozibme",styles:"font-size:0.75rem;line-height:1rem"},us={name:"1t9sqkg",styles:"display:block;@media (min-width: 768px){display:none;}"},cs={name:"v1ygcs",styles:"display:none;@media (min-width: 768px){display:block;}"};const ls=({overrideContent:e,buttonClassName:t,currentUserClassName:r})=>{const{setShowModal:n,theme:i}=Ji(),{disconnect:o,connect:s,connecting:a,wallet:u}=Xi(),{t:c}=no(),l=Zr(D.Fragment,null,a&&Zr("span",{css:as},Zr("span",null,c("Connecting..."))),!a&&Zr("span",{css:us},Zr("span",null,c("Connect"))),!a&&Zr("span",{css:cs},Zr("span",null,c("Connect Wallet")))),f=(0,D.useCallback)((async()=>{try{if(u?.adapter?.name===ve)return void await s();n(!0)}catch(e){e instanceof Error&&"MWA_NOT_FOUND_ERROR"===e.message&&n(!0)}}),[u,s]);return Zr(D.Fragment,null,u?.adapter.connected?Zr(os,{onClick:o,className:r}):Zr(D.Fragment,null,e?Zr("div",{css:ss.container[i],className:t,onClick:f},e):Zr("button",{type:"button",css:["width:auto;cursor:pointer;border-radius:0.5rem;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem;text-align:center;font-size:0.75rem;line-height:1rem;font-weight:600;",ss.container[i],"","","",""],className:t,onClick:f},l)))}},7110:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Struct:()=>f,StructError:()=>i,any:()=>O,array:()=>E,assert:()=>d,assign:()=>y,bigint:()=>I,boolean:()=>A,coerce:()=>Z,create:()=>h,date:()=>C,defaulted:()=>J,define:()=>v,deprecated:()=>w,dynamic:()=>b,empty:()=>ee,enums:()=>j,func:()=>N,instance:()=>T,integer:()=>P,intersection:()=>R,is:()=>g,lazy:()=>_,literal:()=>D,map:()=>L,mask:()=>p,max:()=>re,min:()=>ne,never:()=>B,nonempty:()=>ie,nullable:()=>z,number:()=>U,object:()=>W,omit:()=>x,optional:()=>F,partial:()=>S,pattern:()=>oe,pick:()=>M,record:()=>q,refine:()=>ae,regexp:()=>H,set:()=>K,size:()=>se,string:()=>Q,struct:()=>k,trimmed:()=>X,tuple:()=>V,type:()=>$,union:()=>Y,unknown:()=>G,validate:()=>m});var n=r(5640);class i extends TypeError{constructor(e,t){let r;const{message:n,explanation:i,...o}=e,{path:s}=e,a=0===s.length?n:`At path: ${s.join(".")} -- ${n}`;super(i??a),null!=i&&(this.cause=a),Object.assign(this,o),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...t()])}}function o(e){return"object"==typeof e&&null!=e}function s(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function a(e){return"symbol"==typeof e?e.toString():"string"==typeof e?JSON.stringify(e):`${e}`}function u(e,t,r,n){if(!0===e)return;!1===e?e={}:"string"==typeof e&&(e={message:e});const{path:i,branch:o}=t,{type:s}=r,{refinement:u,message:c=`Expected a value of type \`${s}\`${u?` with refinement \`${u}\``:""}, but received: \`${a(n)}\``}=e;return{value:n,type:s,refinement:u,key:i[i.length-1],path:i,branch:o,...e,message:c}}function*c(e,t,r,n){var i;o(i=e)&&"function"==typeof i[Symbol.iterator]||(e=[e]);for(const i of e){const e=u(i,t,r,n);e&&(yield e)}}function*l(e,t,r={}){const{path:n=[],branch:i=[e],coerce:s=!1,mask:a=!1}=r,u={path:n,branch:i};if(s&&(e=t.coercer(e,u),a&&"type"!==t.type&&o(t.schema)&&o(e)&&!Array.isArray(e)))for(const r in e)void 0===t.schema[r]&&delete e[r];let c="valid";for(const n of t.validator(e,u))n.explanation=r.message,c="not_valid",yield[n,void 0];for(let[f,d,h]of t.entries(e,u)){const t=l(d,h,{path:void 0===f?n:[...n,f],branch:void 0===f?i:[...i,d],coerce:s,mask:a,message:r.message});for(const r of t)r[0]?(c=null!=r[0].refinement?"not_refined":"not_valid",yield[r[0],void 0]):s&&(d=r[1],void 0===f?e=d:e instanceof Map?e.set(f,d):e instanceof Set?e.add(d):o(e)&&(void 0!==d||f in e)&&(e[f]=d))}if("not_valid"!==c)for(const n of t.refiner(e,u))n.explanation=r.message,c="not_refined",yield[n,void 0];"valid"===c&&(yield[void 0,e])}class f{constructor(e){const{type:t,schema:r,validator:n,refiner:i,coercer:o=(e=>e),entries:s=function*(){}}=e;this.type=t,this.schema=r,this.entries=s,this.coercer=o,this.validator=n?(e,t)=>c(n(e,t),t,this,e):()=>[],this.refiner=i?(e,t)=>c(i(e,t),t,this,e):()=>[]}assert(e,t){return d(e,this,t)}create(e,t){return h(e,this,t)}is(e){return g(e,this)}mask(e,t){return p(e,this,t)}validate(e,t={}){return m(e,this,t)}}function d(e,t,r){const n=m(e,t,{message:r});if(n[0])throw n[0]}function h(e,t,r){const n=m(e,t,{coerce:!0,message:r});if(n[0])throw n[0];return n[1]}function p(e,t,r){const n=m(e,t,{coerce:!0,mask:!0,message:r});if(n[0])throw n[0];return n[1]}function g(e,t){return!m(e,t)[0]}function m(e,t,r={}){const n=l(e,t,r),o=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(n);return o[0]?[new i(o[0],(function*(){for(const e of n)e[0]&&(yield e[0])})),void 0]:[void 0,o[1]]}function y(...e){const t="type"===e[0].type,r=e.map((e=>e.schema)),n=Object.assign({},...r);return t?$(n):W(n)}function v(e,t){return new f({type:e,schema:null,validator:t})}function w(e,t){return new f({...e,refiner:(t,r)=>void 0===t||e.refiner(t,r),validator:(r,n)=>void 0===r||(t(r,n),e.validator(r,n))})}function b(e){return new f({type:"dynamic",schema:null,*entries(t,r){const n=e(t,r);yield*n.entries(t,r)},validator:(t,r)=>e(t,r).validator(t,r),coercer:(t,r)=>e(t,r).coercer(t,r),refiner:(t,r)=>e(t,r).refiner(t,r)})}function _(e){let t;return new f({type:"lazy",schema:null,*entries(r,n){t??(t=e()),yield*t.entries(r,n)},validator:(r,n)=>(t??(t=e()),t.validator(r,n)),coercer:(r,n)=>(t??(t=e()),t.coercer(r,n)),refiner:(r,n)=>(t??(t=e()),t.refiner(r,n))})}function x(e,t){const{schema:r}=e,n={...r};for(const e of t)delete n[e];return"type"===e.type?$(n):W(n)}function S(e){const t=e instanceof f?{...e.schema}:{...e};for(const e in t)t[e]=F(t[e]);return W(t)}function M(e,t){const{schema:r}=e,n={};for(const e of t)n[e]=r[e];return W(n)}function k(e,t){return n.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`."),v(e,t)}function O(){return v("any",(()=>!0))}function E(e){return new f({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,n]of t.entries())yield[r,n,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${a(e)}`})}function I(){return v("bigint",(e=>"bigint"==typeof e))}function A(){return v("boolean",(e=>"boolean"==typeof e))}function C(){return v("date",(e=>e instanceof Date&&!isNaN(e.getTime())||`Expected a valid \`Date\` object, but received: ${a(e)}`))}function j(e){const t={},r=e.map((e=>a(e))).join();for(const r of e)t[r]=r;return new f({type:"enums",schema:t,validator:t=>e.includes(t)||`Expected one of \`${r}\`, but received: ${a(t)}`})}function N(){return v("func",(e=>"function"==typeof e||`Expected a function, but received: ${a(e)}`))}function T(e){return v("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${a(t)}`))}function P(){return v("integer",(e=>"number"==typeof e&&!isNaN(e)&&Number.isInteger(e)||`Expected an integer, but received: ${a(e)}`))}function R(e){return new f({type:"intersection",schema:null,*entries(t,r){for(const n of e)yield*n.entries(t,r)},*validator(t,r){for(const n of e)yield*n.validator(t,r)},*refiner(t,r){for(const n of e)yield*n.refiner(t,r)}})}function D(e){const t=a(e),r=typeof e;return new f({type:"literal",schema:"string"===r||"number"===r||"boolean"===r?e:null,validator:r=>r===e||`Expected the literal \`${t}\`, but received: ${a(r)}`})}function L(e,t){return new f({type:"map",schema:null,*entries(r){if(e&&t&&r instanceof Map)for(const[n,i]of r.entries())yield[n,n,e],yield[n,i,t]},coercer:e=>e instanceof Map?new Map(e):e,validator:e=>e instanceof Map||`Expected a \`Map\` object, but received: ${a(e)}`})}function B(){return v("never",(()=>!1))}function z(e){return new f({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function U(){return v("number",(e=>"number"==typeof e&&!isNaN(e)||`Expected a number, but received: ${a(e)}`))}function W(e){const t=e?Object.keys(e):[],r=B();return new f({type:"object",schema:e||null,*entries(n){if(e&&o(n)){const i=new Set(Object.keys(n));for(const r of t)i.delete(r),yield[r,n[r],e[r]];for(const e of i)yield[e,n[e],r]}},validator:e=>o(e)||`Expected an object, but received: ${a(e)}`,coercer:e=>o(e)?{...e}:e})}function F(e){return new f({...e,validator:(t,r)=>void 0===t||e.validator(t,r),refiner:(t,r)=>void 0===t||e.refiner(t,r)})}function q(e,t){return new f({type:"record",schema:null,*entries(r){if(o(r))for(const n in r){const i=r[n];yield[n,n,e],yield[n,i,t]}},validator:e=>o(e)||`Expected an object, but received: ${a(e)}`})}function H(){return v("regexp",(e=>e instanceof RegExp))}function K(e){return new f({type:"set",schema:null,*entries(t){if(e&&t instanceof Set)for(const r of t)yield[r,r,e]},coercer:e=>e instanceof Set?new Set(e):e,validator:e=>e instanceof Set||`Expected a \`Set\` object, but received: ${a(e)}`})}function Q(){return v("string",(e=>"string"==typeof e||`Expected a string, but received: ${a(e)}`))}function V(e){const t=B();return new f({type:"tuple",schema:null,*entries(r){if(Array.isArray(r)){const n=Math.max(e.length,r.length);for(let i=0;iArray.isArray(e)||`Expected an array, but received: ${a(e)}`})}function $(e){const t=Object.keys(e);return new f({type:"type",schema:e,*entries(r){if(o(r))for(const n of t)yield[n,r[n],e[n]]},validator:e=>o(e)||`Expected an object, but received: ${a(e)}`,coercer:e=>o(e)?{...e}:e})}function Y(e){const t=e.map((e=>e.type)).join(" | ");return new f({type:"union",schema:null,coercer(t){for(const r of e){const[e,n]=r.validate(t,{coerce:!0});if(!e)return n}return t},validator(r,n){const i=[];for(const t of e){const[...e]=l(r,t,n),[o]=e;if(!o[0])return[];for(const[t]of e)t&&i.push(t)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${a(r)}`,...i]}})}function G(){return v("unknown",(()=>!0))}function Z(e,t,r){return new f({...e,coercer:(n,i)=>g(n,t)?e.coercer(r(n,i),i):e.coercer(n,i)})}function J(e,t,r={}){return Z(e,G(),(e=>{const n="function"==typeof t?t():t;if(void 0===e)return n;if(!r.strict&&s(e)&&s(n)){const t={...e};let r=!1;for(const e in n)void 0===t[e]&&(t[e]=n[e],r=!0);if(r)return t}return e}))}function X(e){return Z(e,Q(),(e=>e.trim()))}function ee(e){return ae(e,"empty",(t=>{const r=te(t);return 0===r||`Expected an empty ${e.type} but received one with a size of \`${r}\``}))}function te(e){return e instanceof Map||e instanceof Set?e.size:e.length}function re(e,t,r={}){const{exclusive:n}=r;return ae(e,"max",(r=>n?rn?r>t:r>=t||`Expected a ${e.type} greater than ${n?"":"or equal to "}${t} but received \`${r}\``))}function ie(e){return ae(e,"nonempty",(t=>te(t)>0||`Expected a nonempty ${e.type} but received an empty one`))}function oe(e,t){return ae(e,"pattern",(r=>t.test(r)||`Expected a ${e.type} matching \`/${t.source}/\` but received "${r}"`))}function se(e,t,r=t){const n=`Expected a ${e.type}`,i=t===r?`of \`${t}\``:`between \`${t}\` and \`${r}\``;return ae(e,"size",(e=>{if("number"==typeof e||e instanceof Date)return t<=e&&e<=r||`${n} ${i} but received \`${e}\``;if(e instanceof Map||e instanceof Set){const{size:o}=e;return t<=o&&o<=r||`${n} with a size ${i} but received one with a size of \`${o}\``}{const{length:o}=e;return t<=o&&o<=r||`${n} with a length ${i} but received one with a length of \`${o}\``}}))}function ae(e,t,r){return new f({...e,*refiner(n,i){yield*e.refiner(n,i);const o=c(r(n,i),i,e,n);for(const e of o)yield{...e,refinement:t}}})}},5285:(e,t,r)=>{"use strict";r.r(t),r.d(t,{__addDisposableResource:()=>P,__assign:()=>o,__asyncDelegator:()=>k,__asyncGenerator:()=>M,__asyncValues:()=>O,__await:()=>S,__awaiter:()=>p,__classPrivateFieldGet:()=>j,__classPrivateFieldIn:()=>T,__classPrivateFieldSet:()=>N,__createBinding:()=>m,__decorate:()=>a,__disposeResources:()=>D,__esDecorate:()=>c,__exportStar:()=>y,__extends:()=>i,__generator:()=>g,__importDefault:()=>C,__importStar:()=>A,__makeTemplateObject:()=>E,__metadata:()=>h,__param:()=>u,__propKey:()=>f,__read:()=>w,__rest:()=>s,__runInitializers:()=>l,__setFunctionName:()=>d,__spread:()=>b,__spreadArray:()=>x,__spreadArrays:()=>_,__values:()=>v,default:()=>L});var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var o=function(){return o=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}function u(e,t){return function(r,n){t(r,n,e)}}function c(e,t,r,n,i,o){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,u=n.kind,c="getter"===u?"get":"setter"===u?"set":"value",l=!t&&e?n.static?e:e.prototype:null,f=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,h=r.length-1;h>=0;h--){var p={};for(var g in n)p[g]="access"===g?{}:n[g];for(var g in n.access)p.access[g]=n.access[g];p.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");o.push(s(e||null))};var m=(0,r[h])("accessor"===u?{get:f.get,set:f.set}:f[c],p);if("accessor"===u){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(a=s(m.get))&&(f.get=a),(a=s(m.set))&&(f.set=a),(a=s(m.init))&&i.unshift(a)}else(a=s(m))&&("field"===u?i.unshift(a):f[c]=a)}l&&Object.defineProperty(l,n.name,f),d=!0}function l(e,t,r){for(var n=arguments.length>2,i=0;i0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s}function b(){for(var e=[],t=0;t1||a(e,t)}))})}function a(e,t){try{(r=i[e](t)).value instanceof S?Promise.resolve(r.value.v).then(u,c):l(o[0][2],r)}catch(e){l(o[0][3],e)}var r}function u(e){a("next",e)}function c(e){a("throw",e)}function l(e,t){e(t),o.shift(),o.length&&a(o[0][0],o[0][1])}}function k(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,i){t[n]=e[n]?function(t){return(r=!r)?{value:S(e[n](t)),done:!1}:i?i(t):t}:i}}function O(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=v(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){!function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}(n,i,(t=e[r](t)).done,t.value)}))}}}function E(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var I=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function A(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&m(t,e,r);return I(t,e),t}function C(e){return e&&e.__esModule?e:{default:e}}function j(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function N(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r}function T(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function P(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose]}if("function"!=typeof n)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t}var R="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};function D(e){function t(t){e.error=e.hasError?new R(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function r(){for(;e.stack.length;){var n=e.stack.pop();try{var i=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(i).then(r,(function(e){return t(e),r()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}const L={__extends:i,__assign:o,__rest:s,__decorate:a,__param:u,__metadata:h,__awaiter:p,__generator:g,__createBinding:m,__exportStar:y,__values:v,__read:w,__spread:b,__spreadArrays:_,__spreadArray:x,__await:S,__asyncGenerator:M,__asyncDelegator:k,__asyncValues:O,__makeTemplateObject:E,__importStar:A,__importDefault:C,__classPrivateFieldGet:j,__classPrivateFieldSet:N,__classPrivateFieldIn:T,__addDisposableResource:P,__disposeResources:D}}},e=>{var t=e(e.s=2594);window.JupiterRenderer=t}]); +//# sourceMappingURL=plugin-1.0.11-app.js.map \ No newline at end of file diff --git a/public/plugin-1.0.11-app.js.LICENSE.txt b/public/plugin-1.0.11-app.js.LICENSE.txt new file mode 100644 index 0000000..c16b05a --- /dev/null +++ b/public/plugin-1.0.11-app.js.LICENSE.txt @@ -0,0 +1,45 @@ +/*! + * decimal.js v10.4.3 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2022 Michael Mclaughlin + * MIT Licence + */ + +/*! + * JavaScript Cookie v2.2.1 + * https://github.com/js-cookie/js-cookie + * + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack + * Released under the MIT license + */ + +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +/*! +* screenfull +* v5.2.0 - 2021-11-03 +* (c) Sindre Sorhus; MIT License +*/ + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ + +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/public/plugin-1.0.11-app.js.map b/public/plugin-1.0.11-app.js.map new file mode 100644 index 0000000..ecaa4ab --- /dev/null +++ b/public/plugin-1.0.11-app.js.map @@ -0,0 +1 @@ +{"version":3,"file":"plugin-1.0.11-app.js","mappings":"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","sources":["webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+buffer-layout@4.0.0/node_modules/@solana/buffer-layout/lib/Layout.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/utils.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_u64.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/sha512.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/abstract/edwards.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/ed25519.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/superstruct@0.14.2/node_modules/superstruct/lib/index.es.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/sha3.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10/node_modules/@solana/web3.js/lib/index.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/base-x@3.0.9/node_modules/base-x/src/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/base-x@4.0.0/node_modules/base-x/src/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/bigint-buffer@1.1.5/node_modules/bigint-buffer/dist/browser.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/bn.js@5.2.1/node_modules/bn.js/lib/bn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/borsh@0.7.0/node_modules/borsh/lib/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/bs58@4.0.1/node_modules/bs58/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/bs58@5.0.0/node_modules/bs58/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/copy-to-clipboard@3.3.3/node_modules/copy-to-clipboard/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/decimal.js@10.4.3/node_modules/decimal.js/decimal.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/react.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/fast-shallow-equal@1.0.0/node_modules/fast-shallow-equal/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/jayson@4.1.0_bufferutil@4.0.8_utf-8-validate@5.0.10/node_modules/jayson/lib/client/browser/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/jayson@4.1.0_bufferutil@4.0.8_utf-8-validate@5.0.10/node_modules/jayson/lib/generateRequest.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/js-cookie@2.2.1/node_modules/js-cookie/src/js.cookie.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/jsbi@4.3.0/node_modules/jsbi/dist/jsbi-umd.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/lodash.debounce@4.0.8/node_modules/lodash.debounce/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/nano-css@5.6.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/nano-css/addon/cssom.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/nano-css@5.6.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/nano-css/addon/vcssom.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/nano-css@5.6.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/nano-css/addon/vcssom/cssToTree.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/nano-css@5.6.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/nano-css/addon/vcssom/removeRule.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/nano-css@5.6.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/nano-css/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-fast-compare@3.2.2/node_modules/react-fast-compare/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-number-format@5.1.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-number-format/dist/react-number-format.es.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-popper@2.3.0_@popperjs+core@2.11.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-popper/lib/esm/Manager.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-popper@2.3.0_@popperjs+core@2.11.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-popper/lib/esm/utils.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-popper@2.3.0_@popperjs+core@2.11.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-popper/lib/esm/usePopper.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-popper@2.3.0_@popperjs+core@2.11.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-popper/lib/esm/Popper.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-popper@2.3.0_@popperjs+core@2.11.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-popper/lib/esm/Reference.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-universal-interface@0.6.2_react@18.3.1_tslib@2.6.2/node_modules/react-universal-interface/lib/addClassDecoratorSupport.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-universal-interface@0.6.2_react@18.3.1_tslib@2.6.2/node_modules/react-universal-interface/lib/createEnhancer.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-universal-interface@0.6.2_react@18.3.1_tslib@2.6.2/node_modules/react-universal-interface/lib/hookToRenderProp.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-universal-interface@0.6.2_react@18.3.1_tslib@2.6.2/node_modules/react-universal-interface/lib/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-universal-interface@0.6.2_react@18.3.1_tslib@2.6.2/node_modules/react-universal-interface/lib/render.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-universal-interface@0.6.2_react@18.3.1_tslib@2.6.2/node_modules/react-universal-interface/lib/wrapInStatefulComponent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createMemo.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createReducerContext.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useFirstMountState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useUpdateEffect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createReducer.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createStateContext.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMountedState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsyncFn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsync.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsyncRetry.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSetState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/misc/parseTimeRanges.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createHTMLMediaHook.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAudio.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/misc/util.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/misc/isDeepEqual.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useBattery.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useBeforeUnload.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useToggle.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useBoolean.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useClickAway.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useCookie.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useCopyToClipboard.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useUpdate.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/misc/hookState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useGetSet.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useCounter.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useIsomorphicLayoutEffect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useCss.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useCustomCompareEffect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useTimeoutFn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useDebounce.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useDeepCompareEffect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useDefault.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useDrop.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useDropArea.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useEffectOnce.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useEnsuredForwardedRef.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useEvent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useError.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useFavicon.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useFullscreen.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useGeolocation.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useGetSetState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/set-harmonic-interval@1.0.1/node_modules/set-harmonic-interval/lib/index.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useHarmonicIntervalFn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useHover.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useHoverDirty.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useIdle.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/throttle-debounce@3.0.1/node_modules/throttle-debounce/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useIntersection.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useInterval.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useKey.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createBreakpoint.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useKeyPress.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useKeyPressEvent.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLatest.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLifecycles.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useList.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLocalStorage.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLocation.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLockBodyScroll.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLogger.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useLongPress.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMap.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMedia.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMediaDevices.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMediatedState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMethods.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMotion.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMount.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useUnmount.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useRafState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMouse.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMouseHovered.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMouseWheel.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useNetworkState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useNumber.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useObservable.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useOrientation.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/usePageLeave.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/usePermission.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/usePrevious.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/usePreviousDistinct.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/usePromise.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useQueue.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useRaf.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useRafLoop.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSearchParam.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useScratch.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useScroll.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useScrolling.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSessionStorage.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useShallowCompareEffect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSize.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSlider.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSpeech.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useStartTyping.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useStateWithHistory.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useStateList.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useThrottle.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useThrottleFn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useTimeout.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useTitle.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useTween.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useUnmountPromise.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useUpsert.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useVibrate.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useVideo.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useStateValidator.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@xobotyi+scrollbar-width@1.9.5/node_modules/@xobotyi/scrollbar-width/dist/index.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useScrollbarWidth.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMultiStateValidator.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useWindowScroll.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useWindowSize.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMeasure.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/usePinchZoom.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useRendersCount.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useSet.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/factory/createGlobalState.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-use@17.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useHash.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-virtualized-auto-sizer@1.0.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-virtualized-auto-sizer/dist/index.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/memoize-one@5.2.1/node_modules/memoize-one/dist/memoize-one.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.22.11/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/react-window@1.8.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-window/dist/index.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/rpc-websockets@7.6.0/node_modules/rpc-websockets/dist/lib/client.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/rpc-websockets@7.6.0/node_modules/rpc-websockets/dist/lib/client/websocket.browser.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/screenfull@5.2.0/node_modules/screenfull/dist/screenfull.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/text-encoding-utf-8@1.0.2/node_modules/text-encoding-utf-8/lib/encoding.lib.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/toggle-selection@1.0.6/node_modules/toggle-selection/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/ts-easing@0.2.0/node_modules/ts-easing/lib/index.js","webpack://@jup-ag/plugin/./src/components/CheckedBadge.tsx","webpack://@jup-ag/plugin/./src/components/CoinBalanceUSD.tsx","webpack://@jup-ag/plugin/./src/components/Coinbalance.tsx","webpack://@jup-ag/plugin/./src/components/CurrentUserBadge.tsx","webpack://@jup-ag/plugin/./src/components/ExchangeRate.tsx","webpack://@jup-ag/plugin/./src/components/Form.tsx","webpack://@jup-ag/plugin/./src/components/FormPairRow.tsx","webpack://@jup-ag/plugin/./src/components/FormPairSelector.tsx","webpack://@jup-ag/plugin/./src/components/Header.tsx","webpack://@jup-ag/plugin/./src/components/JupButton.tsx","webpack://@jup-ag/plugin/./src/components/JupShield.tsx","webpack://@jup-ag/plugin/./src/components/Jupiter.tsx","webpack://@jup-ag/plugin/./src/components/Plural/index.tsx","webpack://@jup-ag/plugin/./src/components/Popover/Popover.tsx","webpack://@jup-ag/plugin/./src/components/PrecisionTickSize/index.tsx","webpack://@jup-ag/plugin/./src/components/PriceInfo/TransactionFee.tsx","webpack://@jup-ag/plugin/./src/components/PriceInfo/index.tsx","webpack://@jup-ag/plugin/./src/components/SubmitButton.tsx","webpack://@jup-ag/plugin/./src/components/SwitchPairButton.tsx","webpack://@jup-ag/plugin/./src/components/TokenIcon.tsx","webpack://@jup-ag/plugin/./src/components/TokenLink.tsx","webpack://@jup-ag/plugin/./src/components/Tooltip/PopoverTooltip.tsx","webpack://@jup-ag/plugin/./src/components/WalletComponents/WalletButton.tsx","webpack://@jup-ag/plugin/./src/components/WalletComponents/components/WalletModalButton.tsx","webpack://@jup-ag/plugin/./src/components/WalletComponents/index.ts","webpack://@jup-ag/plugin/./src/components/screens/InitialScreen.tsx","webpack://@jup-ag/plugin/./src/components/screens/SwappingScreen.tsx","webpack://@jup-ag/plugin/./src/components/screens/WalletScreen.tsx","webpack://@jup-ag/plugin/./src/constants/index.ts","webpack://@jup-ag/plugin/./src/contexts/BrandingProvider.tsx","webpack://@jup-ag/plugin/./src/contexts/ContextProvider.tsx","webpack://@jup-ag/plugin/./src/contexts/ScreenProvider.tsx","webpack://@jup-ag/plugin/./src/contexts/SearchService.ts","webpack://@jup-ag/plugin/./src/contexts/SwapContext.tsx","webpack://@jup-ag/plugin/./src/contexts/WalletPassthroughProvider.tsx","webpack://@jup-ag/plugin/./src/contexts/preferredExplorer/index.tsx","webpack://@jup-ag/plugin/./src/data/UltraSwapService.ts","webpack://@jup-ag/plugin/./src/entity/FormattedUltraQuoteResponse.ts","webpack://@jup-ag/plugin/./src/entity/TransactionError.ts","webpack://@jup-ag/plugin/./src/hooks/useAsset.ts","webpack://@jup-ag/plugin/./src/hooks/useBalances.ts","webpack://@jup-ag/plugin/./src/hooks/useMobile.ts","webpack://@jup-ag/plugin/./src/hooks/useSearch.ts","webpack://@jup-ag/plugin/./src/icons/CloseIcon.tsx","webpack://@jup-ag/plugin/./src/icons/ExternalIcon.tsx","webpack://@jup-ag/plugin/./src/icons/InfoIcon.tsx","webpack://@jup-ag/plugin/./src/icons/JupiterLogoV2.tsx","webpack://@jup-ag/plugin/./src/icons/LeftArrowIcon.tsx","webpack://@jup-ag/plugin/./src/icons/RefreshSVG.tsx","webpack://@jup-ag/plugin/./src/icons/SearchIcon.tsx","webpack://@jup-ag/plugin/./src/icons/SuccessIcon.tsx","webpack://@jup-ag/plugin/./src/icons/UltraIcon.tsx","webpack://@jup-ag/plugin/./src/icons/WalletIcon.tsx","webpack://@jup-ag/plugin/./src/icons/WarningIcon.tsx","webpack://@jup-ag/plugin/./src/index.tsx","webpack://@jup-ag/plugin/./src/misc/tokenTags.ts","webpack://@jup-ag/plugin/./src/misc/utils.ts","webpack://@jup-ag/plugin/./src/queries/useLstApy.ts","webpack://@jup-ag/plugin/./src/queries/useQuoteQuery.ts","webpack://@jup-ag/plugin/./src/queries/useUltraSwapMutation.ts","webpack://@jup-ag/plugin/./src/types/constants.ts","webpack://@jup-ag/plugin/./node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/createClass.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/inherits.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/helpers/typeof.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@babel+runtime@7.23.4/node_modules/@babel/runtime/regenerator/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/focusManager.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/hydration.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/index.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/mutation.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/mutationCache.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/mutationObserver.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/notifyManager.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/onlineManager.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/queriesObserver.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/query.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/queryCache.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/queryClient.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/queryObserver.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/removable.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/retryer.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/streamedQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/subscribable.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/thenable.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/types.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/utils.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/index.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/infiniteQueryOptions.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/mutationOptions.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/queryOptions.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/types.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useIsFetching.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutationState.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/usePrefetchInfiniteQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/usePrefetchQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQueries.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useSuspenseInfiniteQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useSuspenseQueries.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@tanstack+react-query@5.85.5_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.cjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-base@0.9.23_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10_/node_modules/@solana/wallet-adapter-base/lib/esm/adapter.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-base@0.9.23_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10_/node_modules/@solana/wallet-adapter-base/lib/esm/errors.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-base@0.9.23_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10_/node_modules/@solana/wallet-adapter-base/lib/esm/transaction.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-base@0.9.23_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10_/node_modules/@solana/wallet-adapter-base/lib/esm/signer.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-features@1.1.0/node_modules/@solana/wallet-standard-features/lib/esm/signAndSendTransaction.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-features@1.1.0/node_modules/@solana/wallet-standard-features/lib/esm/signTransaction.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@wallet-standard+features@1.0.3/node_modules/@wallet-standard/features/lib/esm/connect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@wallet-standard+features@1.0.3/node_modules/@wallet-standard/features/lib/esm/events.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-base@0.9.23_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10_/node_modules/@solana/wallet-adapter-base/lib/esm/standard.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-base@0.9.23_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-validate@5.0.10_/node_modules/@solana/wallet-adapter-base/lib/esm/types.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/useWallet.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/useLocalStorage.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana-mobile+mobile-wallet-adapter-protocol@1.0.1_react-native@0.72.15_@babel+core@7._dcb4dc516066c660bb033578fd170729/node_modules/@solana-mobile/mobile-wallet-adapter-protocol/lib/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana-mobile+mobile-wallet-adapter-protocol-web3js@2.0.1_@solana+web3.js@1.87.6_buffe_e5d47a29aeed1d87857597cd9296ca35/node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/lib/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana-mobile+wallet-adapter-mobile@2.0.1_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-_949e96cdcc5814cab5be75049b96f1e1/node_modules/@solana-mobile/wallet-adapter-mobile/lib/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-wallet-adapter-base@1.1.1_@solana+web3.js@1.87.6_bufferutil@4.0_bae93c5a069b792a76c6c721e1fd13f6/node_modules/@solana/wallet-standard-wallet-adapter-base/lib/esm/types.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-features@1.1.0/node_modules/@solana/wallet-standard-features/lib/esm/signMessage.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-features@1.1.0/node_modules/@solana/wallet-standard-features/lib/esm/signIn.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-chains@1.1.0/node_modules/@solana/wallet-standard-chains/lib/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-util@1.1.0/node_modules/@solana/wallet-standard-util/lib/esm/commitment.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@wallet-standard+features@1.0.3/node_modules/@wallet-standard/features/lib/esm/disconnect.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@wallet-standard+wallet@1.0.1/node_modules/@wallet-standard/wallet/lib/esm/util.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/base-x@5.0.0/node_modules/base-x/src/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/bs58@6.0.0/node_modules/bs58/src/esm/index.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-wallet-adapter-base@1.1.1_@solana+web3.js@1.87.6_bufferutil@4.0_bae93c5a069b792a76c6c721e1fd13f6/node_modules/@solana/wallet-standard-wallet-adapter-base/lib/esm/adapter.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-util@1.1.0/node_modules/@solana/wallet-standard-util/lib/esm/endpoint.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@wallet-standard+app@1.0.1/node_modules/@wallet-standard/app/lib/esm/wallets.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/getEnvironment.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-standard-wallet-adapter-react@1.1.1_@solana+wallet-adapter-base@0.9.23_@_b36dcb2b139d3ea13dfe5e90f65e4db0/node_modules/@solana/wallet-standard-wallet-adapter-react/lib/esm/useStandardWalletAdapters.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/useConnection.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/errors.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/WalletProviderBase.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/WalletProvider.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/getInferredClusterFromEndpoint.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/ConnectionProvider.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@solana+wallet-adapter-react@0.15.35_@solana+web3.js@1.87.6_bufferutil@4.0.8_utf-8-vali_06b824228d14019781976ac1ccd2d91a/node_modules/@solana/wallet-adapter-react/lib/esm/useAnchorWallet.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+sheet@1.2.2/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+utils@1.2.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+serialize@1.1.4/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.1_react@18.3.1/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+react@11.11.4_@types+react@18.0.23_react@18.3.1/node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/decimal.js@10.4.3/node_modules/decimal.js/decimal.mjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+hash@0.9.1/node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@emotion+react@11.11.4_@types+react@18.0.23_react@18.3.1/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/@jup-ag+wallet-adapter@0.2.3_f6291c689a0a3cdc7b16519ae718051e/node_modules/@jup-ag/wallet-adapter/dist/components.esm.js","webpack://@jup-ag/plugin/./node_modules/.pnpm/superstruct@1.0.3/node_modules/superstruct/dist/index.mjs","webpack://@jup-ag/plugin/./node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/* The MIT License (MIT)\n *\n * Copyright 2015-2018 Peter A. Bigot\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * Support for translating between Uint8Array instances and JavaScript\n * native types.\n *\n * {@link module:Layout~Layout|Layout} is the basis of a class\n * hierarchy that associates property names with sequences of encoded\n * bytes.\n *\n * Layouts are supported for these scalar (numeric) types:\n * * {@link module:Layout~UInt|Unsigned integers in little-endian\n * format} with {@link module:Layout.u8|8-bit}, {@link\n * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\n * {@link module:Layout.u32|32-bit}, {@link\n * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\n * representation ranges;\n * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\n * format} with {@link module:Layout.u16be|16-bit}, {@link\n * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\n * {@link module:Layout.u40be|40-bit}, and {@link\n * module:Layout.u48be|48-bit} representation ranges;\n * * {@link module:Layout~Int|Signed integers in little-endian\n * format} with {@link module:Layout.s8|8-bit}, {@link\n * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\n * {@link module:Layout.s32|32-bit}, {@link\n * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\n * representation ranges;\n * * {@link module:Layout~IntBE|Signed integers in big-endian format}\n * with {@link module:Layout.s16be|16-bit}, {@link\n * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\n * {@link module:Layout.s40be|40-bit}, and {@link\n * module:Layout.s48be|48-bit} representation ranges;\n * * 64-bit integral values that decode to an exact (if magnitude is\n * less than 2^53) or nearby integral Number in {@link\n * module:Layout.nu64|unsigned little-endian}, {@link\n * module:Layout.nu64be|unsigned big-endian}, {@link\n * module:Layout.ns64|signed little-endian}, and {@link\n * module:Layout.ns64be|unsigned big-endian} encodings;\n * * 32-bit floating point values with {@link\n * module:Layout.f32|little-endian} and {@link\n * module:Layout.f32be|big-endian} representations;\n * * 64-bit floating point values with {@link\n * module:Layout.f64|little-endian} and {@link\n * module:Layout.f64be|big-endian} representations;\n * * {@link module:Layout.const|Constants} that take no space in the\n * encoded expression.\n *\n * and for these aggregate types:\n * * {@link module:Layout.seq|Sequence}s of instances of a {@link\n * module:Layout~Layout|Layout}, with JavaScript representation as\n * an Array and constant or data-dependent {@link\n * module:Layout~Sequence#count|length};\n * * {@link module:Layout.struct|Structure}s that aggregate a\n * heterogeneous sequence of {@link module:Layout~Layout|Layout}\n * instances, with JavaScript representation as an Object;\n * * {@link module:Layout.union|Union}s that support multiple {@link\n * module:Layout~VariantLayout|variant layouts} over a fixed\n * (padded) or variable (not padded) span of bytes, using an\n * unsigned integer at the start of the data or a separate {@link\n * module:Layout.unionLayoutDiscriminator|layout element} to\n * determine which layout to use when interpreting the buffer\n * contents;\n * * {@link module:Layout.bits|BitStructure}s that contain a sequence\n * of individual {@link\n * module:Layout~BitStructure#addField|BitField}s packed into an 8,\n * 16, 24, or 32-bit unsigned integer starting at the least- or\n * most-significant bit;\n * * {@link module:Layout.cstr|C strings} of varying length;\n * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\n * module:Layout~Blob#length|length} raw data.\n *\n * All {@link module:Layout~Layout|Layout} instances are immutable\n * after construction, to prevent internal state from becoming\n * inconsistent.\n *\n * @local Layout\n * @local ExternalLayout\n * @local GreedyCount\n * @local OffsetLayout\n * @local UInt\n * @local UIntBE\n * @local Int\n * @local IntBE\n * @local NearUInt64\n * @local NearUInt64BE\n * @local NearInt64\n * @local NearInt64BE\n * @local Float\n * @local FloatBE\n * @local Double\n * @local DoubleBE\n * @local Sequence\n * @local Structure\n * @local UnionDiscriminator\n * @local UnionLayoutDiscriminator\n * @local Union\n * @local VariantLayout\n * @local BitStructure\n * @local BitField\n * @local Boolean\n * @local Blob\n * @local CString\n * @local Constant\n * @local bindConstructorLayout\n * @module Layout\n * @license MIT\n * @author Peter A. Bigot\n * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\n */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.s16 = exports.s8 = exports.nu64be = exports.u48be = exports.u40be = exports.u32be = exports.u24be = exports.u16be = exports.nu64 = exports.u48 = exports.u40 = exports.u32 = exports.u24 = exports.u16 = exports.u8 = exports.offset = exports.greedy = exports.Constant = exports.UTF8 = exports.CString = exports.Blob = exports.Boolean = exports.BitField = exports.BitStructure = exports.VariantLayout = exports.Union = exports.UnionLayoutDiscriminator = exports.UnionDiscriminator = exports.Structure = exports.Sequence = exports.DoubleBE = exports.Double = exports.FloatBE = exports.Float = exports.NearInt64BE = exports.NearInt64 = exports.NearUInt64BE = exports.NearUInt64 = exports.IntBE = exports.Int = exports.UIntBE = exports.UInt = exports.OffsetLayout = exports.GreedyCount = exports.ExternalLayout = exports.bindConstructorLayout = exports.nameWithProperty = exports.Layout = exports.uint8ArrayToBuffer = exports.checkUint8Array = void 0;\nexports.constant = exports.utf8 = exports.cstr = exports.blob = exports.unionLayoutDiscriminator = exports.union = exports.seq = exports.bits = exports.struct = exports.f64be = exports.f64 = exports.f32be = exports.f32 = exports.ns64be = exports.s48be = exports.s40be = exports.s32be = exports.s24be = exports.s16be = exports.ns64 = exports.s48 = exports.s40 = exports.s32 = exports.s24 = void 0;\nconst buffer_1 = require(\"buffer\");\n/* Check if a value is a Uint8Array.\n *\n * @ignore */\nfunction checkUint8Array(b) {\n if (!(b instanceof Uint8Array)) {\n throw new TypeError('b must be a Uint8Array');\n }\n}\nexports.checkUint8Array = checkUint8Array;\n/* Create a Buffer instance from a Uint8Array.\n *\n * @ignore */\nfunction uint8ArrayToBuffer(b) {\n checkUint8Array(b);\n return buffer_1.Buffer.from(b.buffer, b.byteOffset, b.length);\n}\nexports.uint8ArrayToBuffer = uint8ArrayToBuffer;\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\nclass Layout {\n constructor(span, property) {\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n this.span = span;\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n makeDestinationObject() {\n return {};\n }\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Uint8Array} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n return this.span;\n }\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n replicate(property) {\n const rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n fromArray(values) {\n return undefined;\n }\n}\nexports.Layout = Layout;\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n return name;\n}\nexports.nameWithProperty = nameWithProperty;\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\n// `Class` must be a constructor Function, but the assignment of a `layout_` property to it makes it difficult to type\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n if (Object.prototype.hasOwnProperty.call(Class, 'layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n if (!(layout && (layout instanceof Layout))) {\n throw new TypeError('layout must be a Layout');\n }\n if (Object.prototype.hasOwnProperty.call(layout, 'boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n layout.makeDestinationObject = (() => new Class());\n Object.defineProperty(Class.prototype, 'encode', {\n value(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true,\n });\n Object.defineProperty(Class, 'decode', {\n value(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true,\n });\n}\nexports.bindConstructorLayout = bindConstructorLayout;\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\nclass ExternalLayout extends Layout {\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n}\nexports.ExternalLayout = ExternalLayout;\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\nclass GreedyCount extends ExternalLayout {\n constructor(elementSpan = 1, property) {\n if ((!Number.isInteger(elementSpan)) || (0 >= elementSpan)) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n super(-1, property);\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n this.elementSpan = elementSpan;\n }\n /** @override */\n isCount() {\n return true;\n }\n /** @override */\n decode(b, offset = 0) {\n checkUint8Array(b);\n const rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n /** @override */\n encode(src, b, offset) {\n return 0;\n }\n}\nexports.GreedyCount = GreedyCount;\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\nclass OffsetLayout extends ExternalLayout {\n constructor(layout, offset = 0, property) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n super(layout.span, property || layout.property);\n /** The subordinated layout. */\n this.layout = layout;\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Uint8Array\n * being accessed. */\n this.offset = offset;\n }\n /** @override */\n isCount() {\n return ((this.layout instanceof UInt)\n || (this.layout instanceof UIntBE));\n }\n /** @override */\n decode(b, offset = 0) {\n return this.layout.decode(b, offset + this.offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n return this.layout.encode(src, b, offset + this.offset);\n }\n}\nexports.OffsetLayout = OffsetLayout;\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UInt extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readUIntLE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeUIntLE(src, offset, this.span);\n return this.span;\n }\n}\nexports.UInt = UInt;\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UIntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readUIntBE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeUIntBE(src, offset, this.span);\n return this.span;\n }\n}\nexports.UIntBE = UIntBE;\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Int extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readIntLE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeIntLE(src, offset, this.span);\n return this.span;\n }\n}\nexports.Int = Int;\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass IntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readIntBE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeIntBE(src, offset, this.span);\n return this.span;\n }\n}\nexports.IntBE = IntBE;\nconst V2E32 = Math.pow(2, 32);\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\nfunction divmodInt64(src) {\n const hi32 = Math.floor(src / V2E32);\n const lo32 = src - (hi32 * V2E32);\n return { hi32, lo32 };\n}\n/* Reconstruct Number from quotient and non-negative remainder */\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const lo32 = buffer.readUInt32LE(offset);\n const hi32 = buffer.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\nexports.NearUInt64 = NearUInt64;\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const hi32 = buffer.readUInt32BE(offset);\n const lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\nexports.NearUInt64BE = NearUInt64BE;\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const lo32 = buffer.readUInt32LE(offset);\n const hi32 = buffer.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\nexports.NearInt64 = NearInt64;\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const hi32 = buffer.readInt32BE(offset);\n const lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\nexports.NearInt64BE = NearInt64BE;\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Float extends Layout {\n constructor(property) {\n super(4, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readFloatLE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeFloatLE(src, offset);\n return 4;\n }\n}\nexports.Float = Float;\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass FloatBE extends Layout {\n constructor(property) {\n super(4, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readFloatBE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeFloatBE(src, offset);\n return 4;\n }\n}\nexports.FloatBE = FloatBE;\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Double extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readDoubleLE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeDoubleLE(src, offset);\n return 8;\n }\n}\nexports.Double = Double;\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass DoubleBE extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readDoubleBE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeDoubleBE(src, offset);\n return 8;\n }\n}\nexports.DoubleBE = DoubleBE;\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Sequence extends Layout {\n constructor(elementLayout, count, property) {\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n if (!(((count instanceof ExternalLayout) && count.isCount())\n || (Number.isInteger(count) && (0 <= count)))) {\n throw new TypeError('count must be non-negative integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if ((!(count instanceof ExternalLayout))\n && (0 < elementLayout.span)) {\n span = count * elementLayout.span;\n }\n super(span, property);\n /** The layout for individual elements of the sequence. */\n this.elementLayout = elementLayout;\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n this.count = count;\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n return this.span;\n }\n let span = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n }\n else {\n let idx = 0;\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n return span;\n }\n /** @override */\n decode(b, offset = 0) {\n const rv = [];\n let i = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n return rv;\n }\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset = 0) {\n const elo = this.elementLayout;\n const span = src.reduce((span, v) => {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n return span;\n }\n}\nexports.Sequence = Sequence;\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\nclass Structure extends Layout {\n constructor(fields, property, decodePrefixes) {\n if (!(Array.isArray(fields)\n && fields.reduce((acc, v) => acc && (v instanceof Layout), true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n if (('boolean' === typeof property)\n && (undefined === decodePrefixes)) {\n decodePrefixes = property;\n property = undefined;\n }\n /* Verify absence of unnamed variable-length fields. */\n for (const fd of fields) {\n if ((0 > fd.span)\n && (undefined === fd.property)) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n let span = -1;\n try {\n span = fields.reduce((span, fd) => span + fd.getSpan(), 0);\n }\n catch (e) {\n // ignore error\n }\n super(span, property);\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n this.fields = fields;\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n this.decodePrefixes = !!decodePrefixes;\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n return this.span;\n }\n let span = 0;\n try {\n span = this.fields.reduce((span, fd) => {\n const fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n }\n catch (e) {\n throw new RangeError('indeterminate span');\n }\n return span;\n }\n /** @override */\n decode(b, offset = 0) {\n checkUint8Array(b);\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n offset += fd.getSpan(b, offset);\n if (this.decodePrefixes\n && (b.length === offset)) {\n break;\n }\n }\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n encode(src, b, offset = 0) {\n const firstOffset = offset;\n let lastOffset = 0;\n let lastWrote = 0;\n for (const fd of this.fields) {\n let span = fd.span;\n lastWrote = (0 < span) ? span : 0;\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n return (lastOffset + lastWrote) - firstOffset;\n }\n /** @override */\n fromArray(values) {\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if ((undefined !== fd.property)\n && (0 < values.length)) {\n dest[fd.property] = values.shift();\n }\n }\n return dest;\n }\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n return undefined;\n }\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n let offset = 0;\n for (const fd of this.fields) {\n if (fd.property === property) {\n return offset;\n }\n if (0 > fd.span) {\n offset = -1;\n }\n else if (0 <= offset) {\n offset += fd.span;\n }\n }\n return undefined;\n }\n}\nexports.Structure = Structure;\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\nclass UnionDiscriminator {\n constructor(property) {\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n this.property = property;\n }\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n decode(b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n }\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n encode(src, b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n }\n}\nexports.UnionDiscriminator = UnionDiscriminator;\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\nclass UnionLayoutDiscriminator extends UnionDiscriminator {\n constructor(layout, property) {\n if (!((layout instanceof ExternalLayout)\n && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n super(property || layout.property || 'variant');\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n this.layout = layout;\n }\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n}\nexports.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Union extends Layout {\n constructor(discr, defaultLayout, property) {\n let discriminator;\n if ((discr instanceof UInt)\n || (discr instanceof UIntBE)) {\n discriminator = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n }\n else if ((discr instanceof ExternalLayout)\n && discr.isCount()) {\n discriminator = new UnionLayoutDiscriminator(discr);\n }\n else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator '\n + 'or an unsigned integer layout');\n }\n else {\n discriminator = discr;\n }\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n if (!((null === defaultLayout)\n || (defaultLayout instanceof Layout))) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n let span = -1;\n if (defaultLayout) {\n span = defaultLayout.span;\n if ((0 <= span) && ((discr instanceof UInt)\n || (discr instanceof UIntBE))) {\n span += discriminator.layout.span;\n }\n }\n super(span, property);\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n this.discriminator = discriminator;\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n this.usesPrefixDiscriminator = (discr instanceof UInt)\n || (discr instanceof UIntBE);\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n this.defaultLayout = defaultLayout;\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n this.registry = {};\n /* Private variable used when invoking getSourceVariant */\n let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this);\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n this.getSourceVariant = function (src) {\n return boundGetSourceVariant(src);\n };\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n this.configGetSourceVariant = function (gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n return this.span;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n const vlo = this.getVariant(b, offset);\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n return vlo.getSpan(b, offset);\n }\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisfied rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n defaultGetSourceVariant(src) {\n if (Object.prototype.hasOwnProperty.call(src, this.discriminator.property)) {\n if (this.defaultLayout && this.defaultLayout.property\n && Object.prototype.hasOwnProperty.call(src, this.defaultLayout.property)) {\n return undefined;\n }\n const vlo = this.registry[src[this.discriminator.property]];\n if (vlo\n && ((!vlo.layout)\n || (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)))) {\n return vlo;\n }\n }\n else {\n for (const tag in this.registry) {\n const vlo = this.registry[tag];\n if (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)) {\n return vlo;\n }\n }\n }\n throw new Error('unable to infer src variant');\n }\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n decode(b, offset = 0) {\n let dest;\n const dlo = this.discriminator;\n const discr = dlo.decode(b, offset);\n const clo = this.registry[discr];\n if (undefined === clo) {\n const defaultLayout = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n // defaultLayout.property can be undefined, but this is allowed by buffer-layout\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dest[defaultLayout.property] = defaultLayout.decode(b, offset + contentOffset);\n }\n else {\n dest = clo.decode(b, offset);\n }\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n encode(src, b, offset = 0) {\n const vlo = this.getSourceVariant(src);\n if (undefined === vlo) {\n const dlo = this.discriminator;\n // this.defaultLayout is not undefined when vlo is undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const clo = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dlo.encode(src[dlo.property], b, offset);\n // clo.property is not undefined when vlo is undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return contentOffset + clo.encode(src[clo.property], b, offset + contentOffset);\n }\n return vlo.encode(src, b, offset);\n }\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n addVariant(variant, layout, property) {\n const rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Uint8Array)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Uint8Array}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n getVariant(vb, offset = 0) {\n let variant;\n if (vb instanceof Uint8Array) {\n variant = this.discriminator.decode(vb, offset);\n }\n else {\n variant = vb;\n }\n return this.registry[variant];\n }\n}\nexports.Union = Union;\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\nclass VariantLayout extends Layout {\n constructor(union, variant, layout, property) {\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n if ((!Number.isInteger(variant)) || (0 > variant)) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n if (('string' === typeof layout)\n && (undefined === property)) {\n property = layout;\n layout = null;\n }\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if ((null !== union.defaultLayout)\n && (0 <= layout.span)\n && (layout.span > union.defaultLayout.span)) {\n throw new Error('variant span exceeds span of containing union');\n }\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n let span = union.span;\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n if ((0 <= span) && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n super(span, property);\n /** The {@link Union} to which this variant belongs. */\n this.union = union;\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n this.variant = variant;\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n this.layout = layout || null;\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n let span = 0;\n if (this.layout) {\n span = this.layout.getSpan(b, offset + contentOffset);\n }\n return contentOffset + span;\n }\n /** @override */\n decode(b, offset = 0) {\n const dest = this.makeDestinationObject();\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n }\n else if (this.property) {\n dest[this.property] = true;\n }\n else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n return dest;\n }\n /** @override */\n encode(src, b, offset = 0) {\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout\n && (!Object.prototype.hasOwnProperty.call(src, this.property))) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n this.union.discriminator.encode(this.variant, b, offset);\n let span = contentOffset;\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n if ((0 <= this.union.span)\n && (span > this.union.span)) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n return span;\n }\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n return undefined;\n }\n}\nexports.VariantLayout = VariantLayout;\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n return v;\n}\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass BitStructure extends Layout {\n constructor(word, msb, property) {\n if (!((word instanceof UInt)\n || (word instanceof UIntBE))) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n if (('string' === typeof msb)\n && (undefined === property)) {\n property = msb;\n msb = false;\n }\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n super(word.span, property);\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n this.word = word;\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n this.msb = !!msb;\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n this.fields = [];\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n let value = 0;\n this._packedSetValue = function (v) {\n value = fixBitwiseResult(v);\n return this;\n };\n this._packedGetValue = function () {\n return value;\n };\n }\n /** @override */\n decode(b, offset = 0) {\n const dest = this.makeDestinationObject();\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b);\n }\n }\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n encode(src, b, offset = 0) {\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n addField(bits, property) {\n const bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n // `Boolean` conflicts with the native primitive type\n // eslint-disable-next-line @typescript-eslint/ban-types\n addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n const bf = new Boolean(this, property);\n this.fields.push(bf);\n return bf;\n }\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n return undefined;\n }\n}\nexports.BitStructure = BitStructure;\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\nclass BitField {\n constructor(container, bits, property) {\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n if ((!Number.isInteger(bits)) || (0 >= bits)) {\n throw new TypeError('bits must be positive integer');\n }\n const totalBits = 8 * container.span;\n const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0);\n if ((bits + usedBits) > totalBits) {\n throw new Error('bits too long for span remainder ('\n + (totalBits - usedBits) + ' of '\n + totalBits + ' remain)');\n }\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n this.container = container;\n /** The span of this value in bits. */\n this.bits = bits;\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n this.valueMask = (1 << bits) - 1;\n if (32 === bits) { // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n this.start = usedBits;\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n decode(b, offset) {\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(word & this.wordMask);\n const value = wordValue >>> this.start;\n return value;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n encode(value) {\n if ('number' !== typeof value\n || !Number.isInteger(value)\n || (value !== fixBitwiseResult(value & this.valueMask))) {\n throw new TypeError(nameWithProperty('BitField.encode', this)\n + ' value must be integer not exceeding ' + this.valueMask);\n }\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(value << this.start);\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask)\n | wordValue);\n }\n}\nexports.BitField = BitField;\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n/* eslint-disable no-extend-native */\nclass Boolean extends BitField {\n constructor(container, property) {\n super(container, 1, property);\n }\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n decode(b, offset) {\n return !!super.decode(b, offset);\n }\n /** @override */\n encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n super.encode(value);\n }\n}\nexports.Boolean = Boolean;\n/* eslint-enable no-extend-native */\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Uint8Array.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Blob extends Layout {\n constructor(length, property) {\n if (!(((length instanceof ExternalLayout) && length.isCount())\n || (Number.isInteger(length) && (0 <= length)))) {\n throw new TypeError('length must be positive integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n super(span, property);\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n this.length = length;\n }\n /** @override */\n getSpan(b, offset) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return span;\n }\n /** @override */\n decode(b, offset = 0) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return uint8ArrayToBuffer(b).slice(offset, offset + span);\n }\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n let span = this.length;\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n if (!(src instanceof Uint8Array && span === src.length)) {\n throw new TypeError(nameWithProperty('Blob.encode', this)\n + ' requires (length ' + span + ') Uint8Array as src');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Uint8Array');\n }\n const srcBuffer = uint8ArrayToBuffer(src);\n uint8ArrayToBuffer(b).write(srcBuffer.toString('hex'), offset, span, 'hex');\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n return span;\n }\n}\nexports.Blob = Blob;\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass CString extends Layout {\n constructor(property) {\n super(-1, property);\n }\n /** @override */\n getSpan(b, offset = 0) {\n checkUint8Array(b);\n let idx = offset;\n while ((idx < b.length) && (0 !== b[idx])) {\n idx += 1;\n }\n return 1 + idx - offset;\n }\n /** @override */\n decode(b, offset = 0) {\n const span = this.getSpan(b, offset);\n return uint8ArrayToBuffer(b).slice(offset, offset + span - 1).toString('utf-8');\n }\n /** @override */\n encode(src, b, offset = 0) {\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = String(src);\n }\n const srcb = buffer_1.Buffer.from(src, 'utf8');\n const span = srcb.length;\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n const buffer = uint8ArrayToBuffer(b);\n srcb.copy(buffer, offset);\n buffer[offset + span] = 0;\n return span + 1;\n }\n}\nexports.CString = CString;\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UTF8 extends Layout {\n constructor(maxSpan, property) {\n if (('string' === typeof maxSpan) && (undefined === property)) {\n property = maxSpan;\n maxSpan = undefined;\n }\n if (undefined === maxSpan) {\n maxSpan = -1;\n }\n else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n super(-1, property);\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n this.maxSpan = maxSpan;\n }\n /** @override */\n getSpan(b, offset = 0) {\n checkUint8Array(b);\n return b.length - offset;\n }\n /** @override */\n decode(b, offset = 0) {\n const span = this.getSpan(b, offset);\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n return uint8ArrayToBuffer(b).slice(offset, offset + span).toString('utf-8');\n }\n /** @override */\n encode(src, b, offset = 0) {\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = String(src);\n }\n const srcb = buffer_1.Buffer.from(src, 'utf8');\n const span = srcb.length;\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(uint8ArrayToBuffer(b), offset);\n return span;\n }\n}\nexports.UTF8 = UTF8;\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Constant extends Layout {\n constructor(value, property) {\n super(0, property);\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n this.value = value;\n }\n /** @override */\n decode(b, offset) {\n return this.value;\n }\n /** @override */\n encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n}\nexports.Constant = Constant;\n/** Factory for {@link GreedyCount}. */\nexports.greedy = ((elementSpan, property) => new GreedyCount(elementSpan, property));\n/** Factory for {@link OffsetLayout}. */\nexports.offset = ((layout, offset, property) => new OffsetLayout(layout, offset, property));\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\nexports.u8 = ((property) => new UInt(1, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16 = ((property) => new UInt(2, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24 = ((property) => new UInt(3, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32 = ((property) => new UInt(4, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40 = ((property) => new UInt(5, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48 = ((property) => new UInt(6, property));\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64 = ((property) => new NearUInt64(property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16be = ((property) => new UIntBE(2, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24be = ((property) => new UIntBE(3, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32be = ((property) => new UIntBE(4, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40be = ((property) => new UIntBE(5, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48be = ((property) => new UIntBE(6, property));\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64be = ((property) => new NearUInt64BE(property));\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\nexports.s8 = ((property) => new Int(1, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\nexports.s16 = ((property) => new Int(2, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\nexports.s24 = ((property) => new Int(3, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\nexports.s32 = ((property) => new Int(4, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\nexports.s40 = ((property) => new Int(5, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\nexports.s48 = ((property) => new Int(6, property));\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64 = ((property) => new NearInt64(property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\nexports.s16be = ((property) => new IntBE(2, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\nexports.s24be = ((property) => new IntBE(3, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\nexports.s32be = ((property) => new IntBE(4, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\nexports.s40be = ((property) => new IntBE(5, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\nexports.s48be = ((property) => new IntBE(6, property));\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64be = ((property) => new NearInt64BE(property));\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\nexports.f32 = ((property) => new Float(property));\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\nexports.f32be = ((property) => new FloatBE(property));\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\nexports.f64 = ((property) => new Double(property));\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\nexports.f64be = ((property) => new DoubleBE(property));\n/** Factory for {@link Structure} values. */\nexports.struct = ((fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes));\n/** Factory for {@link BitStructure} values. */\nexports.bits = ((word, msb, property) => new BitStructure(word, msb, property));\n/** Factory for {@link Sequence} values. */\nexports.seq = ((elementLayout, count, property) => new Sequence(elementLayout, count, property));\n/** Factory for {@link Union} values. */\nexports.union = ((discr, defaultLayout, property) => new Union(discr, defaultLayout, property));\n/** Factory for {@link UnionLayoutDiscriminator} values. */\nexports.unionLayoutDiscriminator = ((layout, property) => new UnionLayoutDiscriminator(layout, property));\n/** Factory for {@link Blob} values. */\nexports.blob = ((length, property) => new Blob(length, property));\n/** Factory for {@link CString} values. */\nexports.cstr = ((property) => new CString(property));\n/** Factory for {@link UTF8} values. */\nexports.utf8 = ((maxSpan, property) => new UTF8(maxSpan, property));\n/** Factory for {@link Constant} values. */\nexports.constant = ((value, property) => new Constant(value, property));\n//# sourceMappingURL=Layout.js.map","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = /* @__PURE__ */ wrapConstructor(() => new SHA512());\nexport const sha512_224 = /* @__PURE__ */ wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = /* @__PURE__ */ wrapConstructor(() => new SHA512_256());\nexport const sha384 = /* @__PURE__ */ wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a) => a instanceof Uint8Array;\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\nexport function equalBytes(b1, b2) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length)\n return false;\n for (let i = 0; i < b1.length; i++)\n if (b1[i] !== b2[i])\n return false;\n return true;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport const bitSet = (n, pos, value) => {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n};\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || val instanceof Uint8Array,\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport { bitMask, numberToBytesBE, numberToBytesLE, bytesToNumberBE, bytesToNumberLE, ensureBytes, validateObject, } from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nexport function mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nexport function invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nexport function FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nexport function validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nexport function FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x) => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n });\n return Object.freeze(f);\n}\nexport function FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexport function FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W) => {\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, precomputesMap, n, transform) {\n // @ts-ignore\n const W = P._WINDOW_SIZE || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = precomputesMap.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\n };\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y²\nimport { mod } from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes } from './utils.js';\nimport { wNAF, validateBasic } from './curve.js';\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _8n = BigInt(8);\n// verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex:\nconst VERIFY_DEFAULT = { zip215: true };\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(curve, {\n hash: 'function',\n a: 'bigint',\n d: 'bigint',\n randomBytes: 'function',\n }, {\n adjustScalarBytes: 'function',\n domain: 'function',\n uvRatio: 'function',\n mapToCurve: 'function',\n });\n // Set defaults\n return Object.freeze({ ...opts });\n}\n// It is not generic twisted curve for now, but ed25519/ed448 generic implementation\nexport function twistedEdwards(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER, prehash: prehash, hash: cHash, randomBytes, nByteLength, h: cofactor, } = CURVE;\n const MASK = _2n << (BigInt(nByteLength * 8) - _1n);\n const modP = Fp.create; // Function overrides\n // sqrt(u/v)\n const uvRatio = CURVE.uvRatio ||\n ((u, v) => {\n try {\n return { isValid: true, value: Fp.sqrt(u * Fp.inv(v)) };\n }\n catch (e) {\n return { isValid: false, value: _0n };\n }\n });\n const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes) => bytes); // NOOP\n const domain = CURVE.domain ||\n ((data, ctx, phflag) => {\n if (ctx.length || phflag)\n throw new Error('Contexts/pre-hash are not supported');\n return data;\n }); // NOOP\n const inBig = (n) => typeof n === 'bigint' && _0n < n; // n in [1..]\n const inRange = (n, max) => inBig(n) && inBig(max) && n < max; // n in [1..max-1]\n const in0MaskRange = (n) => n === _0n || inRange(n, MASK); // n in [0..MASK-1]\n function assertInRange(n, max) {\n // n in [1..max-1]\n if (inRange(n, max))\n return n;\n throw new Error(`Expected valid scalar < ${max}, got ${typeof n} ${n}`);\n }\n function assertGE0(n) {\n // n in [0..CURVE_ORDER-1]\n return n === _0n ? n : assertInRange(n, CURVE_ORDER); // GE = prime subgroup, not full group\n }\n const pointPrecomputes = new Map();\n function isPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ExtendedPoint expected');\n }\n // Extended Point works in extended coordinates: (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy).\n // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates\n class Point {\n constructor(ex, ey, ez, et) {\n this.ex = ex;\n this.ey = ey;\n this.ez = ez;\n this.et = et;\n if (!in0MaskRange(ex))\n throw new Error('x required');\n if (!in0MaskRange(ey))\n throw new Error('y required');\n if (!in0MaskRange(ez))\n throw new Error('z required');\n if (!in0MaskRange(et))\n throw new Error('t required');\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n static fromAffine(p) {\n if (p instanceof Point)\n throw new Error('extended point not allowed');\n const { x, y } = p || {};\n if (!in0MaskRange(x) || !in0MaskRange(y))\n throw new Error('invalid affine point');\n return new Point(x, y, _1n, modP(x * y));\n }\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.ez));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // Not required for fromHex(), which always creates valid points.\n // Could be useful for fromAffine().\n assertValidity() {\n const { a, d } = CURVE;\n if (this.is0())\n throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n // Equation in affine coordinates: ax² + y² = 1 + dx²y²\n // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²\n const { ex: X, ey: Y, ez: Z, et: T } = this;\n const X2 = modP(X * X); // X²\n const Y2 = modP(Y * Y); // Y²\n const Z2 = modP(Z * Z); // Z²\n const Z4 = modP(Z2 * Z2); // Z⁴\n const aX2 = modP(X2 * a); // aX²\n const left = modP(Z2 * modP(aX2 + Y2)); // (aX² + Y²)Z²\n const right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z⁴ + dX²Y²\n if (left !== right)\n throw new Error('bad point: equation left != right (1)');\n // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n const XY = modP(X * Y);\n const ZT = modP(Z * T);\n if (XY !== ZT)\n throw new Error('bad point: equation left != right (2)');\n }\n // Compare one point to another.\n equals(other) {\n isPoint(other);\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const { ex: X2, ey: Y2, ez: Z2 } = other;\n const X1Z2 = modP(X1 * Z2);\n const X2Z1 = modP(X2 * Z1);\n const Y1Z2 = modP(Y1 * Z2);\n const Y2Z1 = modP(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n negate() {\n // Flips point sign to a negative one (-x, y in affine coords)\n return new Point(modP(-this.ex), this.ey, this.ez, modP(-this.et));\n }\n // Fast algo for doubling Extended Point.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n // Cost: 4M + 4S + 1*a + 6add + 1*2.\n double() {\n const { a } = CURVE;\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const A = modP(X1 * X1); // A = X12\n const B = modP(Y1 * Y1); // B = Y12\n const C = modP(_2n * modP(Z1 * Z1)); // C = 2*Z12\n const D = modP(a * A); // D = a*A\n const x1y1 = X1 + Y1;\n const E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B\n const G = D + B; // G = D+B\n const F = G - C; // F = G-C\n const H = D - B; // H = D-B\n const X3 = modP(E * F); // X3 = E*F\n const Y3 = modP(G * H); // Y3 = G*H\n const T3 = modP(E * H); // T3 = E*H\n const Z3 = modP(F * G); // Z3 = F*G\n return new Point(X3, Y3, Z3, T3);\n }\n // Fast algo for adding 2 Extended Points.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd\n // Cost: 9M + 1*a + 1*d + 7add.\n add(other) {\n isPoint(other);\n const { a, d } = CURVE;\n const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this;\n const { ex: X2, ey: Y2, ez: Z2, et: T2 } = other;\n // Faster algo for adding 2 Extended Points when curve's a=-1.\n // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-4\n // Cost: 8M + 8add + 2*2.\n // Note: It does not check whether the `other` point is valid.\n if (a === BigInt(-1)) {\n const A = modP((Y1 - X1) * (Y2 + X2));\n const B = modP((Y1 + X1) * (Y2 - X2));\n const F = modP(B - A);\n if (F === _0n)\n return this.double(); // Same point. Tests say it doesn't affect timing\n const C = modP(Z1 * _2n * T2);\n const D = modP(T1 * _2n * Z2);\n const E = D + C;\n const G = B + A;\n const H = D - C;\n const X3 = modP(E * F);\n const Y3 = modP(G * H);\n const T3 = modP(E * H);\n const Z3 = modP(F * G);\n return new Point(X3, Y3, Z3, T3);\n }\n const A = modP(X1 * X2); // A = X1*X2\n const B = modP(Y1 * Y2); // B = Y1*Y2\n const C = modP(T1 * d * T2); // C = T1*d*T2\n const D = modP(Z1 * Z2); // D = Z1*Z2\n const E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B\n const F = D - C; // F = D-C\n const G = D + C; // G = D+C\n const H = modP(B - a * A); // H = B-a*A\n const X3 = modP(E * F); // X3 = E*F\n const Y3 = modP(G * H); // Y3 = G*H\n const T3 = modP(E * H); // T3 = E*H\n const Z3 = modP(F * G); // Z3 = F*G\n return new Point(X3, Y3, Z3, T3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, Point.normalizeZ);\n }\n // Constant-time multiplication.\n multiply(scalar) {\n const { p, f } = this.wNAF(assertInRange(scalar, CURVE_ORDER));\n return Point.normalizeZ([p, f])[0];\n }\n // Non-constant-time multiplication. Uses double-and-add algorithm.\n // It's faster, but should only be used when you don't care about\n // an exposed private key e.g. sig verification.\n // Does NOT allow scalars higher than CURVE.n.\n multiplyUnsafe(scalar) {\n let n = assertGE0(scalar); // 0 <= scalar < CURVE.n\n if (n === _0n)\n return I;\n if (this.equals(I) || n === _1n)\n return this;\n if (this.equals(G))\n return this.wNAF(n).p;\n return wnaf.unsafeLadder(this, n);\n }\n // Checks if point is of small order.\n // If you add something to small order point, you will have \"dirty\"\n // point with torsion component.\n // Multiplies point by cofactor and checks if the result is 0.\n isSmallOrder() {\n return this.multiplyUnsafe(cofactor).is0();\n }\n // Multiplies point by curve order and checks if the result is 0.\n // Returns `false` is the point is dirty.\n isTorsionFree() {\n return wnaf.unsafeLadder(this, CURVE_ORDER).is0();\n }\n // Converts Extended point to default (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n toAffine(iz) {\n const { ex: x, ey: y, ez: z } = this;\n const is0 = this.is0();\n if (iz == null)\n iz = is0 ? _8n : Fp.inv(z); // 8 was chosen arbitrarily\n const ax = modP(x * iz);\n const ay = modP(y * iz);\n const zz = modP(z * iz);\n if (is0)\n return { x: _0n, y: _1n };\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n clearCofactor() {\n const { h: cofactor } = CURVE;\n if (cofactor === _1n)\n return this;\n return this.multiplyUnsafe(cofactor);\n }\n // Converts hash string or Uint8Array to Point.\n // Uses algo from RFC8032 5.1.3.\n static fromHex(hex, zip215 = false) {\n const { d, a } = CURVE;\n const len = Fp.BYTES;\n hex = ensureBytes('pointHex', hex, len); // copy hex to a new array\n const normed = hex.slice(); // copy again, we'll manipulate it\n const lastByte = hex[len - 1]; // select last byte\n normed[len - 1] = lastByte & ~0x80; // clear last bit\n const y = ut.bytesToNumberLE(normed);\n if (y === _0n) {\n // y=0 is allowed\n }\n else {\n // RFC8032 prohibits >= p, but ZIP215 doesn't\n if (zip215)\n assertInRange(y, MASK); // zip215=true [1..P-1] (2^255-19-1 for ed25519)\n else\n assertInRange(y, Fp.ORDER); // zip215=false [1..MASK-1] (2^256-1 for ed25519)\n }\n // Ed25519: x² = (y²-1)/(dy²+1) mod p. Ed448: x² = (y²-1)/(dy²-1) mod p. Generic case:\n // ax²+y²=1+dx²y² => y²-1=dx²y²-ax² => y²-1=x²(dy²-a) => x²=(y²-1)/(dy²-a)\n const y2 = modP(y * y); // denominator is always non-0 mod p.\n const u = modP(y2 - _1n); // u = y² - 1\n const v = modP(d * y2 - a); // v = d y² + 1.\n let { isValid, value: x } = uvRatio(u, v); // √(u/v)\n if (!isValid)\n throw new Error('Point.fromHex: invalid y coordinate');\n const isXOdd = (x & _1n) === _1n; // There are 2 square roots. Use x_0 bit to select proper\n const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n if (!zip215 && x === _0n && isLastByteOdd)\n // if x=0 and x_0 = 1, fail\n throw new Error('Point.fromHex: x=0 and x_0=1');\n if (isLastByteOdd !== isXOdd)\n x = modP(-x); // if x_0 != x mod 2, set x = p-x\n return Point.fromAffine({ x, y });\n }\n static fromPrivateKey(privKey) {\n return getExtendedPublicKey(privKey).point;\n }\n toRawBytes() {\n const { x, y } = this.toAffine();\n const bytes = ut.numberToBytesLE(y, Fp.BYTES); // each y has 2 x values (x, -y)\n bytes[bytes.length - 1] |= x & _1n ? 0x80 : 0; // when compressing, it's enough to store y\n return bytes; // and use the last byte to encode sign of x\n }\n toHex() {\n return ut.bytesToHex(this.toRawBytes()); // Same as toRawBytes, but returns string.\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, _1n, modP(CURVE.Gx * CURVE.Gy));\n Point.ZERO = new Point(_0n, _1n, _1n, _0n); // 0, 1, 1, 0\n const { BASE: G, ZERO: I } = Point;\n const wnaf = wNAF(Point, nByteLength * 8);\n function modN(a) {\n return mod(a, CURVE_ORDER);\n }\n // Little-endian SHA512 with modulo n\n function modN_LE(hash) {\n return modN(ut.bytesToNumberLE(hash));\n }\n /** Convenience method that creates public key and other stuff. RFC8032 5.1.5 */\n function getExtendedPublicKey(key) {\n const len = nByteLength;\n key = ensureBytes('private key', key, len);\n // Hash private key with curve's hash function to produce uniformingly random input\n // Check byte lengths: ensure(64, h(ensure(32, key)))\n const hashed = ensureBytes('hashed private key', cHash(key), 2 * len);\n const head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE\n const prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6)\n const scalar = modN_LE(head); // The actual private scalar\n const point = G.multiply(scalar); // Point on Edwards curve aka public key\n const pointBytes = point.toRawBytes(); // Uint8Array representation\n return { head, prefix, scalar, point, pointBytes };\n }\n // Calculates EdDSA pub key. RFC8032 5.1.5. Privkey is hashed. Use first half with 3 bits cleared\n function getPublicKey(privKey) {\n return getExtendedPublicKey(privKey).pointBytes;\n }\n // int('LE', SHA512(dom2(F, C) || msgs)) mod N\n function hashDomainToScalar(context = new Uint8Array(), ...msgs) {\n const msg = ut.concatBytes(...msgs);\n return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash)));\n }\n /** Signs message with privateKey. RFC8032 5.1.6 */\n function sign(msg, privKey, options = {}) {\n msg = ensureBytes('message', msg);\n if (prehash)\n msg = prehash(msg); // for ed25519ph etc.\n const { prefix, scalar, pointBytes } = getExtendedPublicKey(privKey);\n const r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)\n const R = G.multiply(r).toRawBytes(); // R = rG\n const k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M)\n const s = modN(r + k * scalar); // S = (r + k * s) mod L\n assertGE0(s); // 0 <= s < l\n const res = ut.concatBytes(R, ut.numberToBytesLE(s, Fp.BYTES));\n return ensureBytes('result', res, nByteLength * 2); // 64-byte signature\n }\n const verifyOpts = VERIFY_DEFAULT;\n function verify(sig, msg, publicKey, options = verifyOpts) {\n const { context, zip215 } = options;\n const len = Fp.BYTES; // Verifies EdDSA signature against message and public key. RFC8032 5.1.7.\n sig = ensureBytes('signature', sig, 2 * len); // An extended group equation is checked.\n msg = ensureBytes('message', msg);\n if (prehash)\n msg = prehash(msg); // for ed25519ph, etc\n const s = ut.bytesToNumberLE(sig.slice(len, 2 * len));\n // zip215: true is good for consensus-critical apps and allows points < 2^256\n // zip215: false follows RFC8032 / NIST186-5 and restricts points to CURVE.p\n let A, R, SB;\n try {\n A = Point.fromHex(publicKey, zip215);\n R = Point.fromHex(sig.slice(0, len), zip215);\n SB = G.multiplyUnsafe(s); // 0 <= s < l is done inside\n }\n catch (error) {\n return false;\n }\n if (!zip215 && A.isSmallOrder())\n return false;\n const k = hashDomainToScalar(context, R.toRawBytes(), A.toRawBytes(), msg);\n const RkA = R.add(A.multiplyUnsafe(k));\n // [8][S]B = [8]R + [8][k]A'\n return RkA.subtract(SB).clearCofactor().equals(Point.ZERO);\n }\n G._setWindowSize(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n const utils = {\n getExtendedPublicKey,\n // ed25519 private keys are uniform 32b. No need to check for modulo bias, like in secp256k1.\n randomPrivateKey: () => randomBytes(Fp.BYTES),\n /**\n * We're doing scalar multiplication (used in getPublicKey etc) with precomputed BASE_POINT\n * values. This slows down first getPublicKey() by milliseconds (see Speed section),\n * but allows to speed-up subsequent getPublicKey() calls up to 20x.\n * @param windowSize 2, 4, 8, 16\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3));\n return point;\n },\n };\n return {\n CURVE,\n getPublicKey,\n sign,\n verify,\n ExtendedPoint: Point,\n utils,\n };\n}\n//# sourceMappingURL=edwards.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha512 } from '@noble/hashes/sha512';\nimport { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils';\nimport { twistedEdwards } from './abstract/edwards.js';\nimport { montgomery } from './abstract/montgomery.js';\nimport { Field, FpSqrtEven, isNegativeLE, mod, pow2 } from './abstract/modular.js';\nimport { bytesToHex, bytesToNumberLE, ensureBytes, equalBytes, numberToBytesLE, } from './abstract/utils.js';\nimport { createHasher, expand_message_xmd } from './abstract/hash-to-curve.js';\n/**\n * ed25519 Twisted Edwards curve with following addons:\n * - X25519 ECDH\n * - Ristretto cofactor elimination\n * - Elligator hash-to-group / point indistinguishability\n */\nconst ED25519_P = BigInt('57896044618658097711785492504343953926634992332820282019728792003956564819949');\n// √(-1) aka √(a) aka 2^((p-1)/4)\nconst ED25519_SQRT_M1 = BigInt('19681161376707505956807079304988542015446066515923890162744021073123829784752');\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _5n = BigInt(5);\n// prettier-ignore\nconst _10n = BigInt(10), _20n = BigInt(20), _40n = BigInt(40), _80n = BigInt(80);\nfunction ed25519_pow_2_252_3(x) {\n const P = ED25519_P;\n const x2 = (x * x) % P;\n const b2 = (x2 * x) % P; // x^3, 11\n const b4 = (pow2(b2, _2n, P) * b2) % P; // x^15, 1111\n const b5 = (pow2(b4, _1n, P) * x) % P; // x^31\n const b10 = (pow2(b5, _5n, P) * b5) % P;\n const b20 = (pow2(b10, _10n, P) * b10) % P;\n const b40 = (pow2(b20, _20n, P) * b20) % P;\n const b80 = (pow2(b40, _40n, P) * b40) % P;\n const b160 = (pow2(b80, _80n, P) * b80) % P;\n const b240 = (pow2(b160, _80n, P) * b80) % P;\n const b250 = (pow2(b240, _10n, P) * b10) % P;\n const pow_p_5_8 = (pow2(b250, _2n, P) * x) % P;\n // ^ To pow to (p+3)/8, multiply it by x.\n return { pow_p_5_8, b2 };\n}\nfunction adjustScalarBytes(bytes) {\n // Section 5: For X25519, in order to decode 32 random bytes as an integer scalar,\n // set the three least significant bits of the first byte\n bytes[0] &= 248; // 0b1111_1000\n // and the most significant bit of the last to zero,\n bytes[31] &= 127; // 0b0111_1111\n // set the second most significant bit of the last byte to 1\n bytes[31] |= 64; // 0b0100_0000\n return bytes;\n}\n// sqrt(u/v)\nfunction uvRatio(u, v) {\n const P = ED25519_P;\n const v3 = mod(v * v * v, P); // v³\n const v7 = mod(v3 * v3 * v, P); // v⁷\n // (p+3)/8 and (p-5)/8\n const pow = ed25519_pow_2_252_3(u * v7).pow_p_5_8;\n let x = mod(u * v3 * pow, P); // (uv³)(uv⁷)^(p-5)/8\n const vx2 = mod(v * x * x, P); // vx²\n const root1 = x; // First root candidate\n const root2 = mod(x * ED25519_SQRT_M1, P); // Second root candidate\n const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root\n const useRoot2 = vx2 === mod(-u, P); // If vx² = -u, set x <-- x * 2^((p-1)/4)\n const noRoot = vx2 === mod(-u * ED25519_SQRT_M1, P); // There is no valid root, vx² = -u√(-1)\n if (useRoot1)\n x = root1;\n if (useRoot2 || noRoot)\n x = root2; // We return root2 anyway, for const-time\n if (isNegativeLE(x, P))\n x = mod(-x, P);\n return { isValid: useRoot1 || useRoot2, value: x };\n}\n// Just in case\nexport const ED25519_TORSION_SUBGROUP = [\n '0100000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a',\n '0000000000000000000000000000000000000000000000000000000000000080',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05',\n 'ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85',\n '0000000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa',\n];\nconst Fp = Field(ED25519_P, undefined, true);\nconst ed25519Defaults = {\n // Param: a\n a: BigInt(-1),\n // d is equal to -121665/121666 over finite field.\n // Negative number is P - number, and division is invert(number, P)\n d: BigInt('37095705934669439343138083508754565189542113879843219016388785533085940283555'),\n // Finite field 𝔽p over which we'll do calculations; 2n**255n - 19n\n Fp,\n // Subgroup order: how many points curve has\n // 2n**252n + 27742317777372353535851937790883648493n;\n n: BigInt('7237005577332262213973186563042994240857116359379907606001950938285454250989'),\n // Cofactor\n h: BigInt(8),\n // Base point (x, y) aka generator point\n Gx: BigInt('15112221349535400772501151409588531511454012693041857206046113283949847762202'),\n Gy: BigInt('46316835694926478169428394003475163141307993866256225615783033603165251855960'),\n hash: sha512,\n randomBytes,\n adjustScalarBytes,\n // dom2\n // Ratio of u to v. Allows us to combine inversion and square root. Uses algo from RFC8032 5.1.3.\n // Constant-time, u/√v\n uvRatio,\n};\nexport const ed25519 = /* @__PURE__ */ twistedEdwards(ed25519Defaults);\nfunction ed25519_domain(data, ctx, phflag) {\n if (ctx.length > 255)\n throw new Error('Context is too big');\n return concatBytes(utf8ToBytes('SigEd25519 no Ed25519 collisions'), new Uint8Array([phflag ? 1 : 0, ctx.length]), ctx, data);\n}\nexport const ed25519ctx = /* @__PURE__ */ twistedEdwards({\n ...ed25519Defaults,\n domain: ed25519_domain,\n});\nexport const ed25519ph = /* @__PURE__ */ twistedEdwards({\n ...ed25519Defaults,\n domain: ed25519_domain,\n prehash: sha512,\n});\nexport const x25519 = /* @__PURE__ */ (() => montgomery({\n P: ED25519_P,\n a: BigInt(486662),\n montgomeryBits: 255,\n nByteLength: 32,\n Gu: BigInt(9),\n powPminus2: (x) => {\n const P = ED25519_P;\n // x^(p-2) aka x^(2^255-21)\n const { pow_p_5_8, b2 } = ed25519_pow_2_252_3(x);\n return mod(pow2(pow_p_5_8, BigInt(3), P) * b2, P);\n },\n adjustScalarBytes,\n randomBytes,\n}))();\n/**\n * Converts ed25519 public key to x25519 public key. Uses formula:\n * * `(u, v) = ((1+y)/(1-y), sqrt(-486664)*u/x)`\n * * `(x, y) = (sqrt(-486664)*u/v, (u-1)/(u+1))`\n * @example\n * const someonesPub = ed25519.getPublicKey(ed25519.utils.randomPrivateKey());\n * const aPriv = x25519.utils.randomPrivateKey();\n * x25519.getSharedSecret(aPriv, edwardsToMontgomeryPub(someonesPub))\n */\nexport function edwardsToMontgomeryPub(edwardsPub) {\n const { y } = ed25519.ExtendedPoint.fromHex(edwardsPub);\n const _1n = BigInt(1);\n return Fp.toBytes(Fp.create((_1n + y) * Fp.inv(_1n - y)));\n}\nexport const edwardsToMontgomery = edwardsToMontgomeryPub; // deprecated\n/**\n * Converts ed25519 secret key to x25519 secret key.\n * @example\n * const someonesPub = x25519.getPublicKey(x25519.utils.randomPrivateKey());\n * const aPriv = ed25519.utils.randomPrivateKey();\n * x25519.getSharedSecret(edwardsToMontgomeryPriv(aPriv), someonesPub)\n */\nexport function edwardsToMontgomeryPriv(edwardsPriv) {\n const hashed = ed25519Defaults.hash(edwardsPriv.subarray(0, 32));\n return ed25519Defaults.adjustScalarBytes(hashed).subarray(0, 32);\n}\n// Hash To Curve Elligator2 Map (NOTE: different from ristretto255 elligator)\n// NOTE: very important part is usage of FpSqrtEven for ELL2_C1_EDWARDS, since\n// SageMath returns different root first and everything falls apart\nconst ELL2_C1 = (Fp.ORDER + BigInt(3)) / BigInt(8); // 1. c1 = (q + 3) / 8 # Integer arithmetic\nconst ELL2_C2 = Fp.pow(_2n, ELL2_C1); // 2. c2 = 2^c1\nconst ELL2_C3 = Fp.sqrt(Fp.neg(Fp.ONE)); // 3. c3 = sqrt(-1)\nconst ELL2_C4 = (Fp.ORDER - BigInt(5)) / BigInt(8); // 4. c4 = (q - 5) / 8 # Integer arithmetic\nconst ELL2_J = BigInt(486662);\n// prettier-ignore\nfunction map_to_curve_elligator2_curve25519(u) {\n let tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, _2n); // 2. tv1 = 2 * tv1\n let xd = Fp.add(tv1, Fp.ONE); // 3. xd = tv1 + 1 # Nonzero: -1 is square (mod p), tv1 is not\n let x1n = Fp.neg(ELL2_J); // 4. x1n = -J # x1 = x1n / xd = -J / (1 + 2 * u^2)\n let tv2 = Fp.sqr(xd); // 5. tv2 = xd^2\n let gxd = Fp.mul(tv2, xd); // 6. gxd = tv2 * xd # gxd = xd^3\n let gx1 = Fp.mul(tv1, ELL2_J); // 7. gx1 = J * tv1 # x1n + J * xd\n gx1 = Fp.mul(gx1, x1n); // 8. gx1 = gx1 * x1n # x1n^2 + J * x1n * xd\n gx1 = Fp.add(gx1, tv2); // 9. gx1 = gx1 + tv2 # x1n^2 + J * x1n * xd + xd^2\n gx1 = Fp.mul(gx1, x1n); // 10. gx1 = gx1 * x1n # x1n^3 + J * x1n^2 * xd + x1n * xd^2\n let tv3 = Fp.sqr(gxd); // 11. tv3 = gxd^2\n tv2 = Fp.sqr(tv3); // 12. tv2 = tv3^2 # gxd^4\n tv3 = Fp.mul(tv3, gxd); // 13. tv3 = tv3 * gxd # gxd^3\n tv3 = Fp.mul(tv3, gx1); // 14. tv3 = tv3 * gx1 # gx1 * gxd^3\n tv2 = Fp.mul(tv2, tv3); // 15. tv2 = tv2 * tv3 # gx1 * gxd^7\n let y11 = Fp.pow(tv2, ELL2_C4); // 16. y11 = tv2^c4 # (gx1 * gxd^7)^((p - 5) / 8)\n y11 = Fp.mul(y11, tv3); // 17. y11 = y11 * tv3 # gx1*gxd^3*(gx1*gxd^7)^((p-5)/8)\n let y12 = Fp.mul(y11, ELL2_C3); // 18. y12 = y11 * c3\n tv2 = Fp.sqr(y11); // 19. tv2 = y11^2\n tv2 = Fp.mul(tv2, gxd); // 20. tv2 = tv2 * gxd\n let e1 = Fp.eql(tv2, gx1); // 21. e1 = tv2 == gx1\n let y1 = Fp.cmov(y12, y11, e1); // 22. y1 = CMOV(y12, y11, e1) # If g(x1) is square, this is its sqrt\n let x2n = Fp.mul(x1n, tv1); // 23. x2n = x1n * tv1 # x2 = x2n / xd = 2 * u^2 * x1n / xd\n let y21 = Fp.mul(y11, u); // 24. y21 = y11 * u\n y21 = Fp.mul(y21, ELL2_C2); // 25. y21 = y21 * c2\n let y22 = Fp.mul(y21, ELL2_C3); // 26. y22 = y21 * c3\n let gx2 = Fp.mul(gx1, tv1); // 27. gx2 = gx1 * tv1 # g(x2) = gx2 / gxd = 2 * u^2 * g(x1)\n tv2 = Fp.sqr(y21); // 28. tv2 = y21^2\n tv2 = Fp.mul(tv2, gxd); // 29. tv2 = tv2 * gxd\n let e2 = Fp.eql(tv2, gx2); // 30. e2 = tv2 == gx2\n let y2 = Fp.cmov(y22, y21, e2); // 31. y2 = CMOV(y22, y21, e2) # If g(x2) is square, this is its sqrt\n tv2 = Fp.sqr(y1); // 32. tv2 = y1^2\n tv2 = Fp.mul(tv2, gxd); // 33. tv2 = tv2 * gxd\n let e3 = Fp.eql(tv2, gx1); // 34. e3 = tv2 == gx1\n let xn = Fp.cmov(x2n, x1n, e3); // 35. xn = CMOV(x2n, x1n, e3) # If e3, x = x1, else x = x2\n let y = Fp.cmov(y2, y1, e3); // 36. y = CMOV(y2, y1, e3) # If e3, y = y1, else y = y2\n let e4 = Fp.isOdd(y); // 37. e4 = sgn0(y) == 1 # Fix sign of y\n y = Fp.cmov(y, Fp.neg(y), e3 !== e4); // 38. y = CMOV(y, -y, e3 XOR e4)\n return { xMn: xn, xMd: xd, yMn: y, yMd: _1n }; // 39. return (xn, xd, y, 1)\n}\nconst ELL2_C1_EDWARDS = FpSqrtEven(Fp, Fp.neg(BigInt(486664))); // sgn0(c1) MUST equal 0\nfunction map_to_curve_elligator2_edwards25519(u) {\n const { xMn, xMd, yMn, yMd } = map_to_curve_elligator2_curve25519(u); // 1. (xMn, xMd, yMn, yMd) =\n // map_to_curve_elligator2_curve25519(u)\n let xn = Fp.mul(xMn, yMd); // 2. xn = xMn * yMd\n xn = Fp.mul(xn, ELL2_C1_EDWARDS); // 3. xn = xn * c1\n let xd = Fp.mul(xMd, yMn); // 4. xd = xMd * yMn # xn / xd = c1 * xM / yM\n let yn = Fp.sub(xMn, xMd); // 5. yn = xMn - xMd\n let yd = Fp.add(xMn, xMd); // 6. yd = xMn + xMd # (n / d - 1) / (n / d + 1) = (n - d) / (n + d)\n let tv1 = Fp.mul(xd, yd); // 7. tv1 = xd * yd\n let e = Fp.eql(tv1, Fp.ZERO); // 8. e = tv1 == 0\n xn = Fp.cmov(xn, Fp.ZERO, e); // 9. xn = CMOV(xn, 0, e)\n xd = Fp.cmov(xd, Fp.ONE, e); // 10. xd = CMOV(xd, 1, e)\n yn = Fp.cmov(yn, Fp.ONE, e); // 11. yn = CMOV(yn, 1, e)\n yd = Fp.cmov(yd, Fp.ONE, e); // 12. yd = CMOV(yd, 1, e)\n const inv = Fp.invertBatch([xd, yd]); // batch division\n return { x: Fp.mul(xn, inv[0]), y: Fp.mul(yn, inv[1]) }; // 13. return (xn, xd, yn, yd)\n}\nconst htf = /* @__PURE__ */ (() => createHasher(ed25519.ExtendedPoint, (scalars) => map_to_curve_elligator2_edwards25519(scalars[0]), {\n DST: 'edwards25519_XMD:SHA-512_ELL2_RO_',\n encodeDST: 'edwards25519_XMD:SHA-512_ELL2_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha512,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\nfunction assertRstPoint(other) {\n if (!(other instanceof RistPoint))\n throw new Error('RistrettoPoint expected');\n}\n// √(-1) aka √(a) aka 2^((p-1)/4)\nconst SQRT_M1 = ED25519_SQRT_M1;\n// √(ad - 1)\nconst SQRT_AD_MINUS_ONE = BigInt('25063068953384623474111414158702152701244531502492656460079210482610430750235');\n// 1 / √(a-d)\nconst INVSQRT_A_MINUS_D = BigInt('54469307008909316920995813868745141605393597292927456921205312896311721017578');\n// 1-d²\nconst ONE_MINUS_D_SQ = BigInt('1159843021668779879193775521855586647937357759715417654439879720876111806838');\n// (d-1)²\nconst D_MINUS_ONE_SQ = BigInt('40440834346308536858101042469323190826248399146238708352240133220865137265952');\n// Calculates 1/√(number)\nconst invertSqrt = (number) => uvRatio(_1n, number);\nconst MAX_255B = BigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nconst bytes255ToNumberLE = (bytes) => ed25519.CURVE.Fp.create(bytesToNumberLE(bytes) & MAX_255B);\n// Computes Elligator map for Ristretto\n// https://ristretto.group/formulas/elligator.html\nfunction calcElligatorRistrettoMap(r0) {\n const { d } = ed25519.CURVE;\n const P = ed25519.CURVE.Fp.ORDER;\n const mod = ed25519.CURVE.Fp.create;\n const r = mod(SQRT_M1 * r0 * r0); // 1\n const Ns = mod((r + _1n) * ONE_MINUS_D_SQ); // 2\n let c = BigInt(-1); // 3\n const D = mod((c - d * r) * mod(r + d)); // 4\n let { isValid: Ns_D_is_sq, value: s } = uvRatio(Ns, D); // 5\n let s_ = mod(s * r0); // 6\n if (!isNegativeLE(s_, P))\n s_ = mod(-s_);\n if (!Ns_D_is_sq)\n s = s_; // 7\n if (!Ns_D_is_sq)\n c = r; // 8\n const Nt = mod(c * (r - _1n) * D_MINUS_ONE_SQ - D); // 9\n const s2 = s * s;\n const W0 = mod((s + s) * D); // 10\n const W1 = mod(Nt * SQRT_AD_MINUS_ONE); // 11\n const W2 = mod(_1n - s2); // 12\n const W3 = mod(_1n + s2); // 13\n return new ed25519.ExtendedPoint(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2));\n}\n/**\n * Each ed25519/ExtendedPoint has 8 different equivalent points. This can be\n * a source of bugs for protocols like ring signatures. Ristretto was created to solve this.\n * Ristretto point operates in X:Y:Z:T extended coordinates like ExtendedPoint,\n * but it should work in its own namespace: do not combine those two.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448\n */\nclass RistPoint {\n // Private property to discourage combining ExtendedPoint + RistrettoPoint\n // Always use Ristretto encoding/decoding instead.\n constructor(ep) {\n this.ep = ep;\n }\n static fromAffine(ap) {\n return new RistPoint(ed25519.ExtendedPoint.fromAffine(ap));\n }\n /**\n * Takes uniform output of 64-byte hash function like sha512 and converts it to `RistrettoPoint`.\n * The hash-to-group operation applies Elligator twice and adds the results.\n * **Note:** this is one-way map, there is no conversion from point to hash.\n * https://ristretto.group/formulas/elligator.html\n * @param hex 64-byte output of a hash function\n */\n static hashToCurve(hex) {\n hex = ensureBytes('ristrettoHash', hex, 64);\n const r1 = bytes255ToNumberLE(hex.slice(0, 32));\n const R1 = calcElligatorRistrettoMap(r1);\n const r2 = bytes255ToNumberLE(hex.slice(32, 64));\n const R2 = calcElligatorRistrettoMap(r2);\n return new RistPoint(R1.add(R2));\n }\n /**\n * Converts ristretto-encoded string to ristretto point.\n * https://ristretto.group/formulas/decoding.html\n * @param hex Ristretto-encoded 32 bytes. Not every 32-byte string is valid ristretto encoding\n */\n static fromHex(hex) {\n hex = ensureBytes('ristrettoHex', hex, 32);\n const { a, d } = ed25519.CURVE;\n const P = ed25519.CURVE.Fp.ORDER;\n const mod = ed25519.CURVE.Fp.create;\n const emsg = 'RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint';\n const s = bytes255ToNumberLE(hex);\n // 1. Check that s_bytes is the canonical encoding of a field element, or else abort.\n // 3. Check that s is non-negative, or else abort\n if (!equalBytes(numberToBytesLE(s, 32), hex) || isNegativeLE(s, P))\n throw new Error(emsg);\n const s2 = mod(s * s);\n const u1 = mod(_1n + a * s2); // 4 (a is -1)\n const u2 = mod(_1n - a * s2); // 5\n const u1_2 = mod(u1 * u1);\n const u2_2 = mod(u2 * u2);\n const v = mod(a * d * u1_2 - u2_2); // 6\n const { isValid, value: I } = invertSqrt(mod(v * u2_2)); // 7\n const Dx = mod(I * u2); // 8\n const Dy = mod(I * Dx * v); // 9\n let x = mod((s + s) * Dx); // 10\n if (isNegativeLE(x, P))\n x = mod(-x); // 10\n const y = mod(u1 * Dy); // 11\n const t = mod(x * y); // 12\n if (!isValid || isNegativeLE(t, P) || y === _0n)\n throw new Error(emsg);\n return new RistPoint(new ed25519.ExtendedPoint(x, y, _1n, t));\n }\n /**\n * Encodes ristretto point to Uint8Array.\n * https://ristretto.group/formulas/encoding.html\n */\n toRawBytes() {\n let { ex: x, ey: y, ez: z, et: t } = this.ep;\n const P = ed25519.CURVE.Fp.ORDER;\n const mod = ed25519.CURVE.Fp.create;\n const u1 = mod(mod(z + y) * mod(z - y)); // 1\n const u2 = mod(x * y); // 2\n // Square root always exists\n const u2sq = mod(u2 * u2);\n const { value: invsqrt } = invertSqrt(mod(u1 * u2sq)); // 3\n const D1 = mod(invsqrt * u1); // 4\n const D2 = mod(invsqrt * u2); // 5\n const zInv = mod(D1 * D2 * t); // 6\n let D; // 7\n if (isNegativeLE(t * zInv, P)) {\n let _x = mod(y * SQRT_M1);\n let _y = mod(x * SQRT_M1);\n x = _x;\n y = _y;\n D = mod(D1 * INVSQRT_A_MINUS_D);\n }\n else {\n D = D2; // 8\n }\n if (isNegativeLE(x * zInv, P))\n y = mod(-y); // 9\n let s = mod((z - y) * D); // 10 (check footer's note, no sqrt(-a))\n if (isNegativeLE(s, P))\n s = mod(-s);\n return numberToBytesLE(s, 32); // 11\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n toString() {\n return this.toHex();\n }\n // Compare one point to another.\n equals(other) {\n assertRstPoint(other);\n const { ex: X1, ey: Y1 } = this.ep;\n const { ex: X2, ey: Y2 } = other.ep;\n const mod = ed25519.CURVE.Fp.create;\n // (x1 * y2 == y1 * x2) | (y1 * y2 == x1 * x2)\n const one = mod(X1 * Y2) === mod(Y1 * X2);\n const two = mod(Y1 * Y2) === mod(X1 * X2);\n return one || two;\n }\n add(other) {\n assertRstPoint(other);\n return new RistPoint(this.ep.add(other.ep));\n }\n subtract(other) {\n assertRstPoint(other);\n return new RistPoint(this.ep.subtract(other.ep));\n }\n multiply(scalar) {\n return new RistPoint(this.ep.multiply(scalar));\n }\n multiplyUnsafe(scalar) {\n return new RistPoint(this.ep.multiplyUnsafe(scalar));\n }\n}\nexport const RistrettoPoint = /* @__PURE__ */ (() => {\n if (!RistPoint.BASE)\n RistPoint.BASE = new RistPoint(ed25519.ExtendedPoint.BASE);\n if (!RistPoint.ZERO)\n RistPoint.ZERO = new RistPoint(ed25519.ExtendedPoint.ZERO);\n return RistPoint;\n})();\n// Hashing to ristretto255. https://www.rfc-editor.org/rfc/rfc9380#appendix-B\nexport const hashToRistretto255 = (msg, options) => {\n const d = options.DST;\n const DST = typeof d === 'string' ? utf8ToBytes(d) : d;\n const uniform_bytes = expand_message_xmd(msg, DST, 64, sha512);\n const P = RistPoint.hashToCurve(uniform_bytes);\n return P;\n};\nexport const hash_to_ristretto255 = hashToRistretto255; // legacy\n//# sourceMappingURL=ed25519.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\nclass StructError extends TypeError {\n constructor(failure, failures) {\n let cached;\n const {\n message,\n ...rest\n } = failure;\n const {\n path\n } = failure;\n const msg = path.length === 0 ? message : \"At path: \" + path.join('.') + \" -- \" + message;\n super(msg);\n Object.assign(this, rest);\n this.name = this.constructor.name;\n\n this.failures = () => {\n var _cached;\n\n return (_cached = cached) != null ? _cached : cached = [failure, ...failures()];\n };\n }\n\n}\n\n/**\n * Check if a value is an iterator.\n */\nfunction isIterable(x) {\n return isObject(x) && typeof x[Symbol.iterator] === 'function';\n}\n/**\n * Check if a value is a plain object.\n */\n\n\nfunction isObject(x) {\n return typeof x === 'object' && x != null;\n}\n/**\n * Check if a value is a plain object.\n */\n\nfunction isPlainObject(x) {\n if (Object.prototype.toString.call(x) !== '[object Object]') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(x);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Return a value as a printable string.\n */\n\nfunction print(value) {\n return typeof value === 'string' ? JSON.stringify(value) : \"\" + value;\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\n\nfunction shiftIterator(input) {\n const {\n done,\n value\n } = input.next();\n return done ? undefined : value;\n}\n/**\n * Convert a single validation result to a failure.\n */\n\nfunction toFailure(result, context, struct, value) {\n if (result === true) {\n return;\n } else if (result === false) {\n result = {};\n } else if (typeof result === 'string') {\n result = {\n message: result\n };\n }\n\n const {\n path,\n branch\n } = context;\n const {\n type\n } = struct;\n const {\n refinement,\n message = \"Expected a value of type `\" + type + \"`\" + (refinement ? \" with refinement `\" + refinement + \"`\" : '') + \", but received: `\" + print(value) + \"`\"\n } = result;\n return {\n value,\n type,\n refinement,\n key: path[path.length - 1],\n path,\n branch,\n ...result,\n message\n };\n}\n/**\n * Convert a validation result to an iterable of failures.\n */\n\nfunction* toFailures(result, context, struct, value) {\n if (!isIterable(result)) {\n result = [result];\n }\n\n for (const r of result) {\n const failure = toFailure(r, context, struct, value);\n\n if (failure) {\n yield failure;\n }\n }\n}\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\n\nfunction* run(value, struct, options = {}) {\n const {\n path = [],\n branch = [value],\n coerce = false,\n mask = false\n } = options;\n const ctx = {\n path,\n branch\n };\n\n if (coerce) {\n value = struct.coercer(value, ctx);\n\n if (mask && struct.type !== 'type' && isObject(struct.schema) && isObject(value) && !Array.isArray(value)) {\n for (const key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key];\n }\n }\n }\n }\n\n let valid = true;\n\n for (const failure of struct.validator(value, ctx)) {\n valid = false;\n yield [failure, undefined];\n }\n\n for (let [k, v, s] of struct.entries(value, ctx)) {\n const ts = run(v, s, {\n path: k === undefined ? path : [...path, k],\n branch: k === undefined ? branch : [...branch, v],\n coerce,\n mask\n });\n\n for (const t of ts) {\n if (t[0]) {\n valid = false;\n yield [t[0], undefined];\n } else if (coerce) {\n v = t[1];\n\n if (k === undefined) {\n value = v;\n } else if (value instanceof Map) {\n value.set(k, v);\n } else if (value instanceof Set) {\n value.add(v);\n } else if (isObject(value)) {\n value[k] = v;\n }\n }\n }\n }\n\n if (valid) {\n for (const failure of struct.refiner(value, ctx)) {\n valid = false;\n yield [failure, undefined];\n }\n }\n\n if (valid) {\n yield [undefined, value];\n }\n}\n\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\n\nclass Struct {\n constructor(props) {\n const {\n type,\n schema,\n validator,\n refiner,\n coercer = value => value,\n entries = function* () {}\n } = props;\n this.type = type;\n this.schema = schema;\n this.entries = entries;\n this.coercer = coercer;\n\n if (validator) {\n this.validator = (value, context) => {\n const result = validator(value, context);\n return toFailures(result, context, this, value);\n };\n } else {\n this.validator = () => [];\n }\n\n if (refiner) {\n this.refiner = (value, context) => {\n const result = refiner(value, context);\n return toFailures(result, context, this, value);\n };\n } else {\n this.refiner = () => [];\n }\n }\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n\n\n assert(value) {\n return assert(value, this);\n }\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n\n\n create(value) {\n return create(value, this);\n }\n /**\n * Check if a value passes the struct's validation.\n */\n\n\n is(value) {\n return is(value, this);\n }\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n\n\n mask(value) {\n return mask(value, this);\n }\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n\n\n validate(value, options = {}) {\n return validate(value, this, options);\n }\n\n}\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\n\nfunction assert(value, struct) {\n const result = validate(value, struct);\n\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\n\nfunction create(value, struct) {\n const result = validate(value, struct, {\n coerce: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\n\nfunction mask(value, struct) {\n const result = validate(value, struct, {\n coerce: true,\n mask: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Check if a value passes a struct.\n */\n\nfunction is(value, struct) {\n const result = validate(value, struct);\n return !result[0];\n}\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\n\nfunction validate(value, struct, options = {}) {\n const tuples = run(value, struct, options);\n const tuple = shiftIterator(tuples);\n\n if (tuple[0]) {\n const error = new StructError(tuple[0], function* () {\n for (const t of tuples) {\n if (t[0]) {\n yield t[0];\n }\n }\n });\n return [error, undefined];\n } else {\n const v = tuple[1];\n return [undefined, v];\n }\n}\n\nfunction assign(...Structs) {\n const schemas = Structs.map(s => s.schema);\n const schema = Object.assign({}, ...schemas);\n return object(schema);\n}\n/**\n * Define a new struct type with a custom validation function.\n */\n\nfunction define(name, validator) {\n return new Struct({\n type: name,\n schema: null,\n validator\n });\n}\n/**\n * Create a new struct based on an existing struct, but the value is allowed to\n * be `undefined`. `log` will be called if the value is not `undefined`.\n */\n\nfunction deprecated(struct, log) {\n return new Struct({ ...struct,\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n\n validator(value, ctx) {\n if (value === undefined) {\n return true;\n } else {\n log(value, ctx);\n return struct.validator(value, ctx);\n }\n }\n\n });\n}\n/**\n * Create a struct with dynamic validation logic.\n *\n * The callback will receive the value currently being validated, and must\n * return a struct object to validate it with. This can be useful to model\n * validation logic that changes based on its input.\n */\n\nfunction dynamic(fn) {\n return new Struct({\n type: 'dynamic',\n schema: null,\n\n *entries(value, ctx) {\n const struct = fn(value, ctx);\n yield* struct.entries(value, ctx);\n },\n\n validator(value, ctx) {\n const struct = fn(value, ctx);\n return struct.validator(value, ctx);\n },\n\n coercer(value, ctx) {\n const struct = fn(value, ctx);\n return struct.coercer(value, ctx);\n }\n\n });\n}\n/**\n * Create a struct with lazily evaluated validation logic.\n *\n * The first time validation is run with the struct, the callback will be called\n * and must return a struct object to use. This is useful for cases where you\n * want to have self-referential structs for nested data structures to avoid a\n * circular definition problem.\n */\n\nfunction lazy(fn) {\n let struct;\n return new Struct({\n type: 'lazy',\n schema: null,\n\n *entries(value, ctx) {\n var _struct;\n\n (_struct = struct) != null ? _struct : struct = fn();\n yield* struct.entries(value, ctx);\n },\n\n validator(value, ctx) {\n var _struct2;\n\n (_struct2 = struct) != null ? _struct2 : struct = fn();\n return struct.validator(value, ctx);\n },\n\n coercer(value, ctx) {\n var _struct3;\n\n (_struct3 = struct) != null ? _struct3 : struct = fn();\n return struct.coercer(value, ctx);\n }\n\n });\n}\n/**\n * Create a new struct based on an existing object struct, but excluding\n * specific properties.\n *\n * Like TypeScript's `Omit` utility.\n */\n\nfunction omit(struct, keys) {\n const {\n schema\n } = struct;\n const subschema = { ...schema\n };\n\n for (const key of keys) {\n delete subschema[key];\n }\n\n return object(subschema);\n}\n/**\n * Create a new struct based on an existing object struct, but with all of its\n * properties allowed to be `undefined`.\n *\n * Like TypeScript's `Partial` utility.\n */\n\nfunction partial(struct) {\n const schema = struct instanceof Struct ? { ...struct.schema\n } : { ...struct\n };\n\n for (const key in schema) {\n schema[key] = optional(schema[key]);\n }\n\n return object(schema);\n}\n/**\n * Create a new struct based on an existing object struct, but only including\n * specific properties.\n *\n * Like TypeScript's `Pick` utility.\n */\n\nfunction pick(struct, keys) {\n const {\n schema\n } = struct;\n const subschema = {};\n\n for (const key of keys) {\n subschema[key] = schema[key];\n }\n\n return object(subschema);\n}\n/**\n * Define a new struct type with a custom validation function.\n *\n * @deprecated This function has been renamed to `define`.\n */\n\nfunction struct(name, validator) {\n console.warn('superstruct@0.11 - The `struct` helper has been renamed to `define`.');\n return define(name, validator);\n}\n\n/**\n * Ensure that any value passes validation.\n */\n\nfunction any() {\n return define('any', () => true);\n}\nfunction array(Element) {\n return new Struct({\n type: 'array',\n schema: Element,\n\n *entries(value) {\n if (Element && Array.isArray(value)) {\n for (const [i, v] of value.entries()) {\n yield [i, v, Element];\n }\n }\n },\n\n coercer(value) {\n return Array.isArray(value) ? value.slice() : value;\n },\n\n validator(value) {\n return Array.isArray(value) || \"Expected an array value, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a boolean.\n */\n\nfunction boolean() {\n return define('boolean', value => {\n return typeof value === 'boolean';\n });\n}\n/**\n * Ensure that a value is a valid `Date`.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\n\nfunction date() {\n return define('date', value => {\n return value instanceof Date && !isNaN(value.getTime()) || \"Expected a valid `Date` object, but received: \" + print(value);\n });\n}\nfunction enums(values) {\n const schema = {};\n const description = values.map(v => print(v)).join();\n\n for (const key of values) {\n schema[key] = key;\n }\n\n return new Struct({\n type: 'enums',\n schema,\n\n validator(value) {\n return values.includes(value) || \"Expected one of `\" + description + \"`, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a function.\n */\n\nfunction func() {\n return define('func', value => {\n return typeof value === 'function' || \"Expected a function, but received: \" + print(value);\n });\n}\n/**\n * Ensure that a value is an instance of a specific class.\n */\n\nfunction instance(Class) {\n return define('instance', value => {\n return value instanceof Class || \"Expected a `\" + Class.name + \"` instance, but received: \" + print(value);\n });\n}\n/**\n * Ensure that a value is an integer.\n */\n\nfunction integer() {\n return define('integer', value => {\n return typeof value === 'number' && !isNaN(value) && Number.isInteger(value) || \"Expected an integer, but received: \" + print(value);\n });\n}\nfunction intersection(Structs) {\n return new Struct({\n type: 'intersection',\n schema: null,\n\n *entries(value, ctx) {\n for (const S of Structs) {\n yield* S.entries(value, ctx);\n }\n },\n\n *validator(value, ctx) {\n for (const S of Structs) {\n yield* S.validator(value, ctx);\n }\n },\n\n *refiner(value, ctx) {\n for (const S of Structs) {\n yield* S.refiner(value, ctx);\n }\n }\n\n });\n}\nfunction literal(constant) {\n const description = print(constant);\n const t = typeof constant;\n return new Struct({\n type: 'literal',\n schema: t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n\n validator(value) {\n return value === constant || \"Expected the literal `\" + description + \"`, but received: \" + print(value);\n }\n\n });\n}\nfunction map(Key, Value) {\n return new Struct({\n type: 'map',\n schema: null,\n\n *entries(value) {\n if (Key && Value && value instanceof Map) {\n for (const [k, v] of value.entries()) {\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n\n coercer(value) {\n return value instanceof Map ? new Map(value) : value;\n },\n\n validator(value) {\n return value instanceof Map || \"Expected a `Map` object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that no value ever passes validation.\n */\n\nfunction never() {\n return define('never', () => false);\n}\n/**\n * Augment an existing struct to allow `null` values.\n */\n\nfunction nullable(struct) {\n return new Struct({ ...struct,\n validator: (value, ctx) => value === null || struct.validator(value, ctx),\n refiner: (value, ctx) => value === null || struct.refiner(value, ctx)\n });\n}\n/**\n * Ensure that a value is a number.\n */\n\nfunction number() {\n return define('number', value => {\n return typeof value === 'number' && !isNaN(value) || \"Expected a number, but received: \" + print(value);\n });\n}\nfunction object(schema) {\n const knowns = schema ? Object.keys(schema) : [];\n const Never = never();\n return new Struct({\n type: 'object',\n schema: schema ? schema : null,\n\n *entries(value) {\n if (schema && isObject(value)) {\n const unknowns = new Set(Object.keys(value));\n\n for (const key of knowns) {\n unknowns.delete(key);\n yield [key, value[key], schema[key]];\n }\n\n for (const key of unknowns) {\n yield [key, value[key], Never];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n },\n\n coercer(value) {\n return isObject(value) ? { ...value\n } : value;\n }\n\n });\n}\n/**\n * Augment a struct to allow `undefined` values.\n */\n\nfunction optional(struct) {\n return new Struct({ ...struct,\n validator: (value, ctx) => value === undefined || struct.validator(value, ctx),\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx)\n });\n}\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\n\nfunction record(Key, Value) {\n return new Struct({\n type: 'record',\n schema: null,\n\n *entries(value) {\n if (isObject(value)) {\n for (const k in value) {\n const v = value[k];\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a `RegExp`.\n *\n * Note: this does not test the value against the regular expression! For that\n * you need to use the `pattern()` refinement.\n */\n\nfunction regexp() {\n return define('regexp', value => {\n return value instanceof RegExp;\n });\n}\nfunction set(Element) {\n return new Struct({\n type: 'set',\n schema: null,\n\n *entries(value) {\n if (Element && value instanceof Set) {\n for (const v of value) {\n yield [v, v, Element];\n }\n }\n },\n\n coercer(value) {\n return value instanceof Set ? new Set(value) : value;\n },\n\n validator(value) {\n return value instanceof Set || \"Expected a `Set` object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a string.\n */\n\nfunction string() {\n return define('string', value => {\n return typeof value === 'string' || \"Expected a string, but received: \" + print(value);\n });\n}\nfunction tuple(Elements) {\n const Never = never();\n return new Struct({\n type: 'tuple',\n schema: null,\n\n *entries(value) {\n if (Array.isArray(value)) {\n const length = Math.max(Elements.length, value.length);\n\n for (let i = 0; i < length; i++) {\n yield [i, value[i], Elements[i] || Never];\n }\n }\n },\n\n validator(value) {\n return Array.isArray(value) || \"Expected an array, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\n\nfunction type(schema) {\n const keys = Object.keys(schema);\n return new Struct({\n type: 'type',\n schema,\n\n *entries(value) {\n if (isObject(value)) {\n for (const k of keys) {\n yield [k, value[k], schema[k]];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n\n });\n}\nfunction union(Structs) {\n const description = Structs.map(s => s.type).join(' | ');\n return new Struct({\n type: 'union',\n schema: null,\n\n validator(value, ctx) {\n const failures = [];\n\n for (const S of Structs) {\n const [...tuples] = run(value, S, ctx);\n const [first] = tuples;\n\n if (!first[0]) {\n return [];\n } else {\n for (const [failure] of tuples) {\n if (failure) {\n failures.push(failure);\n }\n }\n }\n }\n\n return [\"Expected the value to satisfy a union of `\" + description + \"`, but received: \" + print(value), ...failures];\n }\n\n });\n}\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\n\nfunction unknown() {\n return define('unknown', () => true);\n}\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction coerce(struct, condition, coercer) {\n return new Struct({ ...struct,\n coercer: (value, ctx) => {\n return is(value, condition) ? struct.coercer(coercer(value, ctx), ctx) : struct.coercer(value, ctx);\n }\n });\n}\n/**\n * Augment a struct to replace `undefined` values with a default.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction defaulted(struct, fallback, options = {}) {\n return coerce(struct, unknown(), x => {\n const f = typeof fallback === 'function' ? fallback() : fallback;\n\n if (x === undefined) {\n return f;\n }\n\n if (!options.strict && isPlainObject(x) && isPlainObject(f)) {\n const ret = { ...x\n };\n let changed = false;\n\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key];\n changed = true;\n }\n }\n\n if (changed) {\n return ret;\n }\n }\n\n return x;\n });\n}\n/**\n * Augment a struct to trim string inputs.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction trimmed(struct) {\n return coerce(struct, string(), x => x.trim());\n}\n\n/**\n * Ensure that a string, array, map, or set is empty.\n */\n\nfunction empty(struct) {\n const expected = \"Expected an empty \" + struct.type;\n return refine(struct, 'empty', value => {\n if (value instanceof Map || value instanceof Set) {\n const {\n size\n } = value;\n return size === 0 || expected + \" but received one with a size of `\" + size + \"`\";\n } else {\n const {\n length\n } = value;\n return length === 0 || expected + \" but received one with a length of `\" + length + \"`\";\n }\n });\n}\n/**\n * Ensure that a number or date is below a threshold.\n */\n\nfunction max(struct, threshold, options = {}) {\n const {\n exclusive\n } = options;\n return refine(struct, 'max', value => {\n return exclusive ? value < threshold : value <= threshold || \"Expected a \" + struct.type + \" greater than \" + (exclusive ? '' : 'or equal to ') + threshold + \" but received `\" + value + \"`\";\n });\n}\n/**\n * Ensure that a number or date is above a threshold.\n */\n\nfunction min(struct, threshold, options = {}) {\n const {\n exclusive\n } = options;\n return refine(struct, 'min', value => {\n return exclusive ? value > threshold : value >= threshold || \"Expected a \" + struct.type + \" greater than \" + (exclusive ? '' : 'or equal to ') + threshold + \" but received `\" + value + \"`\";\n });\n}\n/**\n * Ensure that a string matches a regular expression.\n */\n\nfunction pattern(struct, regexp) {\n return refine(struct, 'pattern', value => {\n return regexp.test(value) || \"Expected a \" + struct.type + \" matching `/\" + regexp.source + \"/` but received \\\"\" + value + \"\\\"\";\n });\n}\n/**\n * Ensure that a string, array, number, date, map, or set has a size (or length, or time) between `min` and `max`.\n */\n\nfunction size(struct, min, max = min) {\n const expected = \"Expected a \" + struct.type;\n const of = min === max ? \"of `\" + min + \"`\" : \"between `\" + min + \"` and `\" + max + \"`\";\n return refine(struct, 'size', value => {\n if (typeof value === 'number' || value instanceof Date) {\n return min <= value && value <= max || expected + \" \" + of + \" but received `\" + value + \"`\";\n } else if (value instanceof Map || value instanceof Set) {\n const {\n size\n } = value;\n return min <= size && size <= max || expected + \" with a size \" + of + \" but received one with a size of `\" + size + \"`\";\n } else {\n const {\n length\n } = value;\n return min <= length && length <= max || expected + \" with a length \" + of + \" but received one with a length of `\" + length + \"`\";\n }\n });\n}\n/**\n * Augment a `Struct` to add an additional refinement to the validation.\n *\n * The refiner function is guaranteed to receive a value of the struct's type,\n * because the struct's existing validation will already have passed. This\n * allows you to layer additional validation on top of existing structs.\n */\n\nfunction refine(struct, name, refiner) {\n return new Struct({ ...struct,\n\n *refiner(value, ctx) {\n yield* struct.refiner(value, ctx);\n const result = refiner(value, ctx);\n const failures = toFailures(result, ctx, struct, value);\n\n for (const failure of failures) {\n yield { ...failure,\n refinement: name\n };\n }\n }\n\n });\n}\n\nexport { Struct, StructError, any, array, assert, assign, boolean, coerce, create, date, defaulted, define, deprecated, dynamic, empty, enums, func, instance, integer, intersection, is, lazy, literal, map, mask, max, min, never, nullable, number, object, omit, optional, partial, pattern, pick, record, refine, regexp, set, size, string, struct, trimmed, tuple, type, union, unknown, validate };\n//# sourceMappingURL=index.es.js.map\n","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes } from './utils.js';\nimport { wNAF, validateBasic } from './curve.js';\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\n// ASN.1 DER encoding utilities\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n _parseInt(data) {\n const { Err: E } = DER;\n if (data.length < 2 || data[0] !== 0x02)\n throw new E('Invalid signature integer tag');\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len)\n throw new E('Invalid signature integer: wrong length');\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n if (res[0] & 0b10000000)\n throw new E('Invalid signature integer: negative');\n if (res[0] === 0x00 && !(res[1] & 0b10000000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n if (!(data instanceof Uint8Array))\n throw new Error('ui8a expected');\n let l = data.length;\n if (l < 2 || data[0] != 0x30)\n throw new E('Invalid signature tag');\n if (data[1] !== l - 2)\n throw new E('Invalid signature: incorrect length');\n const { d: r, l: sBytes } = DER._parseInt(data.subarray(2));\n const { d: s, l: rBytesLeft } = DER._parseInt(sBytes);\n if (rBytesLeft.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r, s };\n },\n hexFromSig(sig) {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n const slice = (s) => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n const h = (num) => {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n };\n const s = slice(h(sig.s));\n const r = slice(h(sig.r));\n const shl = s.length / 2;\n const rhl = r.length / 2;\n const sl = h(shl);\n const rl = h(rhl);\n return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`;\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n function assertGE(num) {\n if (!isWithinCurveOrder(num))\n throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (key instanceof Uint8Array)\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, n); // disabled by default, enabled for BLS\n assertGE(num); // num in range [1..N-1]\n return num;\n }\n const pointPrecomputes = new Map();\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n if (this.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(this.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = this.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, (comp) => {\n const toInv = Fp.invertBatch(comp.map((p) => p.pz));\n return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n });\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(n) {\n const I = Point.ZERO;\n if (n === _0n)\n return I;\n assertGE(n); // Will throw on 0\n if (n === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, n);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n assertGE(scalar);\n let n = scalar;\n let point, fake; // Fake point is used to const-time mult\n const { endo } = CURVE;\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n const { px: x, py: y, pz: z } = this;\n const is0 = this.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function isValidFieldElement(num) {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r))\n throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s))\n throw new Error('s must be 0 < s < CURVE.n');\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n if (typeof num !== 'bigint')\n throw new Error('bigint expected');\n if (!(_0n <= num && num < ORDER_MASK))\n throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || sg instanceof Uint8Array) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from './abstract/weierstrass.js';\n// connects noble-curves to noble-hashes\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nimport { bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE } from './abstract/utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { createCurve } from './_shortw_utils.js';\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\nexport const secp256k1 = createCurve({\n a: BigInt(0),\n b: BigInt(7),\n Fp,\n n: secp256k1N,\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true,\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\nconst fe = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1N;\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => numberToBytesBE(n, 32);\nconst modP = (x) => mod(x, secp256k1P);\nconst modN = (x) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n if (!fe(x))\n throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ bytesToNumberBE(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(bytesToNumberBE(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(bytesToNumberBE(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = bytesToNumberBE(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!fe(r))\n return false;\n const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!ge(s))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","import { Buffer } from 'buffer';\nimport { ed25519 } from '@noble/curves/ed25519';\nimport BN from 'bn.js';\nimport bs58 from 'bs58';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { serialize, deserialize, deserializeUnchecked } from 'borsh';\nimport * as BufferLayout from '@solana/buffer-layout';\nimport { blob } from '@solana/buffer-layout';\nimport { toBigIntLE, toBufferLE } from 'bigint-buffer';\nimport { coerce, instance, string, tuple, literal, unknown, type, number, array, nullable, optional, boolean, record, union, create, any, assert as assert$1 } from 'superstruct';\nimport RpcClient from 'jayson/lib/client/browser';\nimport RpcWebSocketCommonClient from 'rpc-websockets/dist/lib/client';\nimport createRpc from 'rpc-websockets/dist/lib/client/websocket.browser';\nimport { keccak_256 } from '@noble/hashes/sha3';\nimport { secp256k1 } from '@noble/curves/secp256k1';\n\n/**\n * A 64 byte secret key, the first 32 bytes of which is the\n * private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n\n/**\n * Ed25519 Keypair\n */\n\nconst generatePrivateKey = ed25519.utils.randomPrivateKey;\nconst generateKeypair = () => {\n const privateScalar = ed25519.utils.randomPrivateKey();\n const publicKey = getPublicKey(privateScalar);\n const secretKey = new Uint8Array(64);\n secretKey.set(privateScalar);\n secretKey.set(publicKey, 32);\n return {\n publicKey,\n secretKey\n };\n};\nconst getPublicKey = ed25519.getPublicKey;\nfunction isOnCurve(publicKey) {\n try {\n ed25519.ExtendedPoint.fromHex(publicKey);\n return true;\n } catch {\n return false;\n }\n}\nconst sign = (message, secretKey) => ed25519.sign(message, secretKey.slice(0, 32));\nconst verify = ed25519.verify;\n\nconst toBuffer = arr => {\n if (Buffer.isBuffer(arr)) {\n return arr;\n } else if (arr instanceof Uint8Array) {\n return Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength);\n } else {\n return Buffer.from(arr);\n }\n};\n\n// Class wrapping a plain object\nclass Struct {\n constructor(properties) {\n Object.assign(this, properties);\n }\n encode() {\n return Buffer.from(serialize(SOLANA_SCHEMA, this));\n }\n static decode(data) {\n return deserialize(SOLANA_SCHEMA, this, data);\n }\n static decodeUnchecked(data) {\n return deserializeUnchecked(SOLANA_SCHEMA, this, data);\n }\n}\n\n// Class representing a Rust-compatible enum, since enums are only strings or\n// numbers in pure JS\nclass Enum extends Struct {\n constructor(properties) {\n super(properties);\n this.enum = '';\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map(key => {\n this.enum = key;\n });\n }\n}\nconst SOLANA_SCHEMA = new Map();\n\nvar _class;\nlet _Symbol$toStringTag;\n\n/**\n * Maximum length of derived pubkey seed\n */\nconst MAX_SEED_LENGTH = 32;\n\n/**\n * Size of public key in bytes\n */\nconst PUBLIC_KEY_LENGTH = 32;\n\n/**\n * Value to be converted into public key\n */\n\n/**\n * JSON object representation of PublicKey class\n */\n\nfunction isPublicKeyData(value) {\n return value._bn !== undefined;\n}\n\n// local counter used by PublicKey.unique()\nlet uniquePublicKeyCounter = 1;\n\n/**\n * A public key\n */\n_Symbol$toStringTag = Symbol.toStringTag;\nclass PublicKey extends Struct {\n /**\n * Create a new PublicKey object\n * @param value ed25519 public key as buffer or base-58 encoded string\n */\n constructor(value) {\n super({});\n /** @internal */\n this._bn = void 0;\n if (isPublicKeyData(value)) {\n this._bn = value._bn;\n } else {\n if (typeof value === 'string') {\n // assume base 58 encoding by default\n const decoded = bs58.decode(value);\n if (decoded.length != PUBLIC_KEY_LENGTH) {\n throw new Error(`Invalid public key input`);\n }\n this._bn = new BN(decoded);\n } else {\n this._bn = new BN(value);\n }\n if (this._bn.byteLength() > PUBLIC_KEY_LENGTH) {\n throw new Error(`Invalid public key input`);\n }\n }\n }\n\n /**\n * Returns a unique PublicKey for tests and benchmarks using a counter\n */\n static unique() {\n const key = new PublicKey(uniquePublicKeyCounter);\n uniquePublicKeyCounter += 1;\n return new PublicKey(key.toBuffer());\n }\n\n /**\n * Default public key value. The base58-encoded string representation is all ones (as seen below)\n * The underlying BN number is 32 bytes that are all zeros\n */\n\n /**\n * Checks if two publicKeys are equal\n */\n equals(publicKey) {\n return this._bn.eq(publicKey._bn);\n }\n\n /**\n * Return the base-58 representation of the public key\n */\n toBase58() {\n return bs58.encode(this.toBytes());\n }\n toJSON() {\n return this.toBase58();\n }\n\n /**\n * Return the byte array representation of the public key in big endian\n */\n toBytes() {\n const buf = this.toBuffer();\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n\n /**\n * Return the Buffer representation of the public key in big endian\n */\n toBuffer() {\n const b = this._bn.toArrayLike(Buffer);\n if (b.length === PUBLIC_KEY_LENGTH) {\n return b;\n }\n const zeroPad = Buffer.alloc(32);\n b.copy(zeroPad, 32 - b.length);\n return zeroPad;\n }\n get [_Symbol$toStringTag]() {\n return `PublicKey(${this.toString()})`;\n }\n\n /**\n * Return the base-58 representation of the public key\n */\n toString() {\n return this.toBase58();\n }\n\n /**\n * Derive a public key from another key, a seed, and a program ID.\n * The program ID will also serve as the owner of the public key, giving\n * it permission to write data to the account.\n */\n /* eslint-disable require-await */\n static async createWithSeed(fromPublicKey, seed, programId) {\n const buffer = Buffer.concat([fromPublicKey.toBuffer(), Buffer.from(seed), programId.toBuffer()]);\n const publicKeyBytes = sha256(buffer);\n return new PublicKey(publicKeyBytes);\n }\n\n /**\n * Derive a program address from seeds and a program ID.\n */\n /* eslint-disable require-await */\n static createProgramAddressSync(seeds, programId) {\n let buffer = Buffer.alloc(0);\n seeds.forEach(function (seed) {\n if (seed.length > MAX_SEED_LENGTH) {\n throw new TypeError(`Max seed length exceeded`);\n }\n buffer = Buffer.concat([buffer, toBuffer(seed)]);\n });\n buffer = Buffer.concat([buffer, programId.toBuffer(), Buffer.from('ProgramDerivedAddress')]);\n const publicKeyBytes = sha256(buffer);\n if (isOnCurve(publicKeyBytes)) {\n throw new Error(`Invalid seeds, address must fall off the curve`);\n }\n return new PublicKey(publicKeyBytes);\n }\n\n /**\n * Async version of createProgramAddressSync\n * For backwards compatibility\n *\n * @deprecated Use {@link createProgramAddressSync} instead\n */\n /* eslint-disable require-await */\n static async createProgramAddress(seeds, programId) {\n return this.createProgramAddressSync(seeds, programId);\n }\n\n /**\n * Find a valid program address\n *\n * Valid program addresses must fall off the ed25519 curve. This function\n * iterates a nonce until it finds one that when combined with the seeds\n * results in a valid program address.\n */\n static findProgramAddressSync(seeds, programId) {\n let nonce = 255;\n let address;\n while (nonce != 0) {\n try {\n const seedsWithNonce = seeds.concat(Buffer.from([nonce]));\n address = this.createProgramAddressSync(seedsWithNonce, programId);\n } catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n nonce--;\n continue;\n }\n return [address, nonce];\n }\n throw new Error(`Unable to find a viable program address nonce`);\n }\n\n /**\n * Async version of findProgramAddressSync\n * For backwards compatibility\n *\n * @deprecated Use {@link findProgramAddressSync} instead\n */\n static async findProgramAddress(seeds, programId) {\n return this.findProgramAddressSync(seeds, programId);\n }\n\n /**\n * Check that a pubkey is on the ed25519 curve.\n */\n static isOnCurve(pubkeyData) {\n const pubkey = new PublicKey(pubkeyData);\n return isOnCurve(pubkey.toBytes());\n }\n}\n_class = PublicKey;\nPublicKey.default = new _class('11111111111111111111111111111111');\nSOLANA_SCHEMA.set(PublicKey, {\n kind: 'struct',\n fields: [['_bn', 'u256']]\n});\n\n/**\n * An account key pair (public and secret keys).\n *\n * @deprecated since v1.10.0, please use {@link Keypair} instead.\n */\nclass Account {\n /**\n * Create a new Account object\n *\n * If the secretKey parameter is not provided a new key pair is randomly\n * created for the account\n *\n * @param secretKey Secret key for the account\n */\n constructor(secretKey) {\n /** @internal */\n this._publicKey = void 0;\n /** @internal */\n this._secretKey = void 0;\n if (secretKey) {\n const secretKeyBuffer = toBuffer(secretKey);\n if (secretKey.length !== 64) {\n throw new Error('bad secret key size');\n }\n this._publicKey = secretKeyBuffer.slice(32, 64);\n this._secretKey = secretKeyBuffer.slice(0, 32);\n } else {\n this._secretKey = toBuffer(generatePrivateKey());\n this._publicKey = toBuffer(getPublicKey(this._secretKey));\n }\n }\n\n /**\n * The public key for this account\n */\n get publicKey() {\n return new PublicKey(this._publicKey);\n }\n\n /**\n * The **unencrypted** secret key for this account. The first 32 bytes\n * is the private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n get secretKey() {\n return Buffer.concat([this._secretKey, this._publicKey], 64);\n }\n}\n\nconst BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey('BPFLoader1111111111111111111111111111111111');\n\n/**\n * Maximum over-the-wire size of a Transaction\n *\n * 1280 is IPv6 minimum MTU\n * 40 bytes is the size of the IPv6 header\n * 8 bytes is the size of the fragment header\n */\nconst PACKET_DATA_SIZE = 1280 - 40 - 8;\nconst VERSION_PREFIX_MASK = 0x7f;\nconst SIGNATURE_LENGTH_IN_BYTES = 64;\n\nclass TransactionExpiredBlockheightExceededError extends Error {\n constructor(signature) {\n super(`Signature ${signature} has expired: block height exceeded.`);\n this.signature = void 0;\n this.signature = signature;\n }\n}\nObject.defineProperty(TransactionExpiredBlockheightExceededError.prototype, 'name', {\n value: 'TransactionExpiredBlockheightExceededError'\n});\nclass TransactionExpiredTimeoutError extends Error {\n constructor(signature, timeoutSeconds) {\n super(`Transaction was not confirmed in ${timeoutSeconds.toFixed(2)} seconds. It is ` + 'unknown if it succeeded or failed. Check signature ' + `${signature} using the Solana Explorer or CLI tools.`);\n this.signature = void 0;\n this.signature = signature;\n }\n}\nObject.defineProperty(TransactionExpiredTimeoutError.prototype, 'name', {\n value: 'TransactionExpiredTimeoutError'\n});\nclass TransactionExpiredNonceInvalidError extends Error {\n constructor(signature) {\n super(`Signature ${signature} has expired: the nonce is no longer valid.`);\n this.signature = void 0;\n this.signature = signature;\n }\n}\nObject.defineProperty(TransactionExpiredNonceInvalidError.prototype, 'name', {\n value: 'TransactionExpiredNonceInvalidError'\n});\n\nclass MessageAccountKeys {\n constructor(staticAccountKeys, accountKeysFromLookups) {\n this.staticAccountKeys = void 0;\n this.accountKeysFromLookups = void 0;\n this.staticAccountKeys = staticAccountKeys;\n this.accountKeysFromLookups = accountKeysFromLookups;\n }\n keySegments() {\n const keySegments = [this.staticAccountKeys];\n if (this.accountKeysFromLookups) {\n keySegments.push(this.accountKeysFromLookups.writable);\n keySegments.push(this.accountKeysFromLookups.readonly);\n }\n return keySegments;\n }\n get(index) {\n for (const keySegment of this.keySegments()) {\n if (index < keySegment.length) {\n return keySegment[index];\n } else {\n index -= keySegment.length;\n }\n }\n return;\n }\n get length() {\n return this.keySegments().flat().length;\n }\n compileInstructions(instructions) {\n // Bail early if any account indexes would overflow a u8\n const U8_MAX = 255;\n if (this.length > U8_MAX + 1) {\n throw new Error('Account index overflow encountered during compilation');\n }\n const keyIndexMap = new Map();\n this.keySegments().flat().forEach((key, index) => {\n keyIndexMap.set(key.toBase58(), index);\n });\n const findKeyIndex = key => {\n const keyIndex = keyIndexMap.get(key.toBase58());\n if (keyIndex === undefined) throw new Error('Encountered an unknown instruction account key during compilation');\n return keyIndex;\n };\n return instructions.map(instruction => {\n return {\n programIdIndex: findKeyIndex(instruction.programId),\n accountKeyIndexes: instruction.keys.map(meta => findKeyIndex(meta.pubkey)),\n data: instruction.data\n };\n });\n }\n}\n\n/**\n * Layout for a public key\n */\nconst publicKey = (property = 'publicKey') => {\n return BufferLayout.blob(32, property);\n};\n\n/**\n * Layout for a signature\n */\nconst signature = (property = 'signature') => {\n return BufferLayout.blob(64, property);\n};\n/**\n * Layout for a Rust String type\n */\nconst rustString = (property = 'string') => {\n const rsl = BufferLayout.struct([BufferLayout.u32('length'), BufferLayout.u32('lengthPadding'), BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), 'chars')], property);\n const _decode = rsl.decode.bind(rsl);\n const _encode = rsl.encode.bind(rsl);\n const rslShim = rsl;\n rslShim.decode = (b, offset) => {\n const data = _decode(b, offset);\n return data['chars'].toString();\n };\n rslShim.encode = (str, b, offset) => {\n const data = {\n chars: Buffer.from(str, 'utf8')\n };\n return _encode(data, b, offset);\n };\n rslShim.alloc = str => {\n return BufferLayout.u32().span + BufferLayout.u32().span + Buffer.from(str, 'utf8').length;\n };\n return rslShim;\n};\n\n/**\n * Layout for an Authorized object\n */\nconst authorized = (property = 'authorized') => {\n return BufferLayout.struct([publicKey('staker'), publicKey('withdrawer')], property);\n};\n\n/**\n * Layout for a Lockup object\n */\nconst lockup = (property = 'lockup') => {\n return BufferLayout.struct([BufferLayout.ns64('unixTimestamp'), BufferLayout.ns64('epoch'), publicKey('custodian')], property);\n};\n\n/**\n * Layout for a VoteInit object\n */\nconst voteInit = (property = 'voteInit') => {\n return BufferLayout.struct([publicKey('nodePubkey'), publicKey('authorizedVoter'), publicKey('authorizedWithdrawer'), BufferLayout.u8('commission')], property);\n};\n\n/**\n * Layout for a VoteAuthorizeWithSeedArgs object\n */\nconst voteAuthorizeWithSeedArgs = (property = 'voteAuthorizeWithSeedArgs') => {\n return BufferLayout.struct([BufferLayout.u32('voteAuthorizationType'), publicKey('currentAuthorityDerivedKeyOwnerPubkey'), rustString('currentAuthorityDerivedKeySeed'), publicKey('newAuthorized')], property);\n};\nfunction getAlloc(type, fields) {\n const getItemAlloc = item => {\n if (item.span >= 0) {\n return item.span;\n } else if (typeof item.alloc === 'function') {\n return item.alloc(fields[item.property]);\n } else if ('count' in item && 'elementLayout' in item) {\n const field = fields[item.property];\n if (Array.isArray(field)) {\n return field.length * getItemAlloc(item.elementLayout);\n }\n } else if ('fields' in item) {\n // This is a `Structure` whose size needs to be recursively measured.\n return getAlloc({\n layout: item\n }, fields[item.property]);\n }\n // Couldn't determine allocated size of layout\n return 0;\n };\n let alloc = 0;\n type.layout.fields.forEach(item => {\n alloc += getItemAlloc(item);\n });\n return alloc;\n}\n\nfunction decodeLength(bytes) {\n let len = 0;\n let size = 0;\n for (;;) {\n let elem = bytes.shift();\n len |= (elem & 0x7f) << size * 7;\n size += 1;\n if ((elem & 0x80) === 0) {\n break;\n }\n }\n return len;\n}\nfunction encodeLength(bytes, len) {\n let rem_len = len;\n for (;;) {\n let elem = rem_len & 0x7f;\n rem_len >>= 7;\n if (rem_len == 0) {\n bytes.push(elem);\n break;\n } else {\n elem |= 0x80;\n bytes.push(elem);\n }\n }\n}\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n}\n\nclass CompiledKeys {\n constructor(payer, keyMetaMap) {\n this.payer = void 0;\n this.keyMetaMap = void 0;\n this.payer = payer;\n this.keyMetaMap = keyMetaMap;\n }\n static compile(instructions, payer) {\n const keyMetaMap = new Map();\n const getOrInsertDefault = pubkey => {\n const address = pubkey.toBase58();\n let keyMeta = keyMetaMap.get(address);\n if (keyMeta === undefined) {\n keyMeta = {\n isSigner: false,\n isWritable: false,\n isInvoked: false\n };\n keyMetaMap.set(address, keyMeta);\n }\n return keyMeta;\n };\n const payerKeyMeta = getOrInsertDefault(payer);\n payerKeyMeta.isSigner = true;\n payerKeyMeta.isWritable = true;\n for (const ix of instructions) {\n getOrInsertDefault(ix.programId).isInvoked = true;\n for (const accountMeta of ix.keys) {\n const keyMeta = getOrInsertDefault(accountMeta.pubkey);\n keyMeta.isSigner ||= accountMeta.isSigner;\n keyMeta.isWritable ||= accountMeta.isWritable;\n }\n }\n return new CompiledKeys(payer, keyMetaMap);\n }\n getMessageComponents() {\n const mapEntries = [...this.keyMetaMap.entries()];\n assert(mapEntries.length <= 256, 'Max static account keys length exceeded');\n const writableSigners = mapEntries.filter(([, meta]) => meta.isSigner && meta.isWritable);\n const readonlySigners = mapEntries.filter(([, meta]) => meta.isSigner && !meta.isWritable);\n const writableNonSigners = mapEntries.filter(([, meta]) => !meta.isSigner && meta.isWritable);\n const readonlyNonSigners = mapEntries.filter(([, meta]) => !meta.isSigner && !meta.isWritable);\n const header = {\n numRequiredSignatures: writableSigners.length + readonlySigners.length,\n numReadonlySignedAccounts: readonlySigners.length,\n numReadonlyUnsignedAccounts: readonlyNonSigners.length\n };\n\n // sanity checks\n {\n assert(writableSigners.length > 0, 'Expected at least one writable signer key');\n const [payerAddress] = writableSigners[0];\n assert(payerAddress === this.payer.toBase58(), 'Expected first writable signer key to be the fee payer');\n }\n const staticAccountKeys = [...writableSigners.map(([address]) => new PublicKey(address)), ...readonlySigners.map(([address]) => new PublicKey(address)), ...writableNonSigners.map(([address]) => new PublicKey(address)), ...readonlyNonSigners.map(([address]) => new PublicKey(address))];\n return [header, staticAccountKeys];\n }\n extractTableLookup(lookupTable) {\n const [writableIndexes, drainedWritableKeys] = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, keyMeta => !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable);\n const [readonlyIndexes, drainedReadonlyKeys] = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, keyMeta => !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable);\n\n // Don't extract lookup if no keys were found\n if (writableIndexes.length === 0 && readonlyIndexes.length === 0) {\n return;\n }\n return [{\n accountKey: lookupTable.key,\n writableIndexes,\n readonlyIndexes\n }, {\n writable: drainedWritableKeys,\n readonly: drainedReadonlyKeys\n }];\n }\n\n /** @internal */\n drainKeysFoundInLookupTable(lookupTableEntries, keyMetaFilter) {\n const lookupTableIndexes = new Array();\n const drainedKeys = new Array();\n for (const [address, keyMeta] of this.keyMetaMap.entries()) {\n if (keyMetaFilter(keyMeta)) {\n const key = new PublicKey(address);\n const lookupTableIndex = lookupTableEntries.findIndex(entry => entry.equals(key));\n if (lookupTableIndex >= 0) {\n assert(lookupTableIndex < 256, 'Max lookup table index exceeded');\n lookupTableIndexes.push(lookupTableIndex);\n drainedKeys.push(key);\n this.keyMetaMap.delete(address);\n }\n }\n }\n return [lookupTableIndexes, drainedKeys];\n }\n}\n\n/**\n * An instruction to execute by a program\n *\n * @property {number} programIdIndex\n * @property {number[]} accounts\n * @property {string} data\n */\n\n/**\n * Message constructor arguments\n */\n\n/**\n * List of instructions to be processed atomically\n */\nclass Message {\n constructor(args) {\n this.header = void 0;\n this.accountKeys = void 0;\n this.recentBlockhash = void 0;\n this.instructions = void 0;\n this.indexToProgramIds = new Map();\n this.header = args.header;\n this.accountKeys = args.accountKeys.map(account => new PublicKey(account));\n this.recentBlockhash = args.recentBlockhash;\n this.instructions = args.instructions;\n this.instructions.forEach(ix => this.indexToProgramIds.set(ix.programIdIndex, this.accountKeys[ix.programIdIndex]));\n }\n get version() {\n return 'legacy';\n }\n get staticAccountKeys() {\n return this.accountKeys;\n }\n get compiledInstructions() {\n return this.instructions.map(ix => ({\n programIdIndex: ix.programIdIndex,\n accountKeyIndexes: ix.accounts,\n data: bs58.decode(ix.data)\n }));\n }\n get addressTableLookups() {\n return [];\n }\n getAccountKeys() {\n return new MessageAccountKeys(this.staticAccountKeys);\n }\n static compile(args) {\n const compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n const [header, staticAccountKeys] = compiledKeys.getMessageComponents();\n const accountKeys = new MessageAccountKeys(staticAccountKeys);\n const instructions = accountKeys.compileInstructions(args.instructions).map(ix => ({\n programIdIndex: ix.programIdIndex,\n accounts: ix.accountKeyIndexes,\n data: bs58.encode(ix.data)\n }));\n return new Message({\n header,\n accountKeys: staticAccountKeys,\n recentBlockhash: args.recentBlockhash,\n instructions\n });\n }\n isAccountSigner(index) {\n return index < this.header.numRequiredSignatures;\n }\n isAccountWritable(index) {\n const numSignedAccounts = this.header.numRequiredSignatures;\n if (index >= this.header.numRequiredSignatures) {\n const unsignedAccountIndex = index - numSignedAccounts;\n const numUnsignedAccounts = this.accountKeys.length - numSignedAccounts;\n const numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n return unsignedAccountIndex < numWritableUnsignedAccounts;\n } else {\n const numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts;\n return index < numWritableSignedAccounts;\n }\n }\n isProgramId(index) {\n return this.indexToProgramIds.has(index);\n }\n programIds() {\n return [...this.indexToProgramIds.values()];\n }\n nonProgramIds() {\n return this.accountKeys.filter((_, index) => !this.isProgramId(index));\n }\n serialize() {\n const numKeys = this.accountKeys.length;\n let keyCount = [];\n encodeLength(keyCount, numKeys);\n const instructions = this.instructions.map(instruction => {\n const {\n accounts,\n programIdIndex\n } = instruction;\n const data = Array.from(bs58.decode(instruction.data));\n let keyIndicesCount = [];\n encodeLength(keyIndicesCount, accounts.length);\n let dataCount = [];\n encodeLength(dataCount, data.length);\n return {\n programIdIndex,\n keyIndicesCount: Buffer.from(keyIndicesCount),\n keyIndices: accounts,\n dataLength: Buffer.from(dataCount),\n data\n };\n });\n let instructionCount = [];\n encodeLength(instructionCount, instructions.length);\n let instructionBuffer = Buffer.alloc(PACKET_DATA_SIZE);\n Buffer.from(instructionCount).copy(instructionBuffer);\n let instructionBufferLength = instructionCount.length;\n instructions.forEach(instruction => {\n const instructionLayout = BufferLayout.struct([BufferLayout.u8('programIdIndex'), BufferLayout.blob(instruction.keyIndicesCount.length, 'keyIndicesCount'), BufferLayout.seq(BufferLayout.u8('keyIndex'), instruction.keyIndices.length, 'keyIndices'), BufferLayout.blob(instruction.dataLength.length, 'dataLength'), BufferLayout.seq(BufferLayout.u8('userdatum'), instruction.data.length, 'data')]);\n const length = instructionLayout.encode(instruction, instructionBuffer, instructionBufferLength);\n instructionBufferLength += length;\n });\n instructionBuffer = instructionBuffer.slice(0, instructionBufferLength);\n const signDataLayout = BufferLayout.struct([BufferLayout.blob(1, 'numRequiredSignatures'), BufferLayout.blob(1, 'numReadonlySignedAccounts'), BufferLayout.blob(1, 'numReadonlyUnsignedAccounts'), BufferLayout.blob(keyCount.length, 'keyCount'), BufferLayout.seq(publicKey('key'), numKeys, 'keys'), publicKey('recentBlockhash')]);\n const transaction = {\n numRequiredSignatures: Buffer.from([this.header.numRequiredSignatures]),\n numReadonlySignedAccounts: Buffer.from([this.header.numReadonlySignedAccounts]),\n numReadonlyUnsignedAccounts: Buffer.from([this.header.numReadonlyUnsignedAccounts]),\n keyCount: Buffer.from(keyCount),\n keys: this.accountKeys.map(key => toBuffer(key.toBytes())),\n recentBlockhash: bs58.decode(this.recentBlockhash)\n };\n let signData = Buffer.alloc(2048);\n const length = signDataLayout.encode(transaction, signData);\n instructionBuffer.copy(signData, length);\n return signData.slice(0, length + instructionBuffer.length);\n }\n\n /**\n * Decode a compiled message into a Message object.\n */\n static from(buffer) {\n // Slice up wire data\n let byteArray = [...buffer];\n const numRequiredSignatures = byteArray.shift();\n if (numRequiredSignatures !== (numRequiredSignatures & VERSION_PREFIX_MASK)) {\n throw new Error('Versioned messages must be deserialized with VersionedMessage.deserialize()');\n }\n const numReadonlySignedAccounts = byteArray.shift();\n const numReadonlyUnsignedAccounts = byteArray.shift();\n const accountCount = decodeLength(byteArray);\n let accountKeys = [];\n for (let i = 0; i < accountCount; i++) {\n const account = byteArray.slice(0, PUBLIC_KEY_LENGTH);\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n accountKeys.push(new PublicKey(Buffer.from(account)));\n }\n const recentBlockhash = byteArray.slice(0, PUBLIC_KEY_LENGTH);\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n const instructionCount = decodeLength(byteArray);\n let instructions = [];\n for (let i = 0; i < instructionCount; i++) {\n const programIdIndex = byteArray.shift();\n const accountCount = decodeLength(byteArray);\n const accounts = byteArray.slice(0, accountCount);\n byteArray = byteArray.slice(accountCount);\n const dataLength = decodeLength(byteArray);\n const dataSlice = byteArray.slice(0, dataLength);\n const data = bs58.encode(Buffer.from(dataSlice));\n byteArray = byteArray.slice(dataLength);\n instructions.push({\n programIdIndex,\n accounts,\n data\n });\n }\n const messageArgs = {\n header: {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts\n },\n recentBlockhash: bs58.encode(Buffer.from(recentBlockhash)),\n accountKeys,\n instructions\n };\n return new Message(messageArgs);\n }\n}\n\n/**\n * Message constructor arguments\n */\n\nclass MessageV0 {\n constructor(args) {\n this.header = void 0;\n this.staticAccountKeys = void 0;\n this.recentBlockhash = void 0;\n this.compiledInstructions = void 0;\n this.addressTableLookups = void 0;\n this.header = args.header;\n this.staticAccountKeys = args.staticAccountKeys;\n this.recentBlockhash = args.recentBlockhash;\n this.compiledInstructions = args.compiledInstructions;\n this.addressTableLookups = args.addressTableLookups;\n }\n get version() {\n return 0;\n }\n get numAccountKeysFromLookups() {\n let count = 0;\n for (const lookup of this.addressTableLookups) {\n count += lookup.readonlyIndexes.length + lookup.writableIndexes.length;\n }\n return count;\n }\n getAccountKeys(args) {\n let accountKeysFromLookups;\n if (args && 'accountKeysFromLookups' in args && args.accountKeysFromLookups) {\n if (this.numAccountKeysFromLookups != args.accountKeysFromLookups.writable.length + args.accountKeysFromLookups.readonly.length) {\n throw new Error('Failed to get account keys because of a mismatch in the number of account keys from lookups');\n }\n accountKeysFromLookups = args.accountKeysFromLookups;\n } else if (args && 'addressLookupTableAccounts' in args && args.addressLookupTableAccounts) {\n accountKeysFromLookups = this.resolveAddressTableLookups(args.addressLookupTableAccounts);\n } else if (this.addressTableLookups.length > 0) {\n throw new Error('Failed to get account keys because address table lookups were not resolved');\n }\n return new MessageAccountKeys(this.staticAccountKeys, accountKeysFromLookups);\n }\n isAccountSigner(index) {\n return index < this.header.numRequiredSignatures;\n }\n isAccountWritable(index) {\n const numSignedAccounts = this.header.numRequiredSignatures;\n const numStaticAccountKeys = this.staticAccountKeys.length;\n if (index >= numStaticAccountKeys) {\n const lookupAccountKeysIndex = index - numStaticAccountKeys;\n const numWritableLookupAccountKeys = this.addressTableLookups.reduce((count, lookup) => count + lookup.writableIndexes.length, 0);\n return lookupAccountKeysIndex < numWritableLookupAccountKeys;\n } else if (index >= this.header.numRequiredSignatures) {\n const unsignedAccountIndex = index - numSignedAccounts;\n const numUnsignedAccounts = numStaticAccountKeys - numSignedAccounts;\n const numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n return unsignedAccountIndex < numWritableUnsignedAccounts;\n } else {\n const numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts;\n return index < numWritableSignedAccounts;\n }\n }\n resolveAddressTableLookups(addressLookupTableAccounts) {\n const accountKeysFromLookups = {\n writable: [],\n readonly: []\n };\n for (const tableLookup of this.addressTableLookups) {\n const tableAccount = addressLookupTableAccounts.find(account => account.key.equals(tableLookup.accountKey));\n if (!tableAccount) {\n throw new Error(`Failed to find address lookup table account for table key ${tableLookup.accountKey.toBase58()}`);\n }\n for (const index of tableLookup.writableIndexes) {\n if (index < tableAccount.state.addresses.length) {\n accountKeysFromLookups.writable.push(tableAccount.state.addresses[index]);\n } else {\n throw new Error(`Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`);\n }\n }\n for (const index of tableLookup.readonlyIndexes) {\n if (index < tableAccount.state.addresses.length) {\n accountKeysFromLookups.readonly.push(tableAccount.state.addresses[index]);\n } else {\n throw new Error(`Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`);\n }\n }\n }\n return accountKeysFromLookups;\n }\n static compile(args) {\n const compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n const addressTableLookups = new Array();\n const accountKeysFromLookups = {\n writable: new Array(),\n readonly: new Array()\n };\n const lookupTableAccounts = args.addressLookupTableAccounts || [];\n for (const lookupTable of lookupTableAccounts) {\n const extractResult = compiledKeys.extractTableLookup(lookupTable);\n if (extractResult !== undefined) {\n const [addressTableLookup, {\n writable,\n readonly\n }] = extractResult;\n addressTableLookups.push(addressTableLookup);\n accountKeysFromLookups.writable.push(...writable);\n accountKeysFromLookups.readonly.push(...readonly);\n }\n }\n const [header, staticAccountKeys] = compiledKeys.getMessageComponents();\n const accountKeys = new MessageAccountKeys(staticAccountKeys, accountKeysFromLookups);\n const compiledInstructions = accountKeys.compileInstructions(args.instructions);\n return new MessageV0({\n header,\n staticAccountKeys,\n recentBlockhash: args.recentBlockhash,\n compiledInstructions,\n addressTableLookups\n });\n }\n serialize() {\n const encodedStaticAccountKeysLength = Array();\n encodeLength(encodedStaticAccountKeysLength, this.staticAccountKeys.length);\n const serializedInstructions = this.serializeInstructions();\n const encodedInstructionsLength = Array();\n encodeLength(encodedInstructionsLength, this.compiledInstructions.length);\n const serializedAddressTableLookups = this.serializeAddressTableLookups();\n const encodedAddressTableLookupsLength = Array();\n encodeLength(encodedAddressTableLookupsLength, this.addressTableLookups.length);\n const messageLayout = BufferLayout.struct([BufferLayout.u8('prefix'), BufferLayout.struct([BufferLayout.u8('numRequiredSignatures'), BufferLayout.u8('numReadonlySignedAccounts'), BufferLayout.u8('numReadonlyUnsignedAccounts')], 'header'), BufferLayout.blob(encodedStaticAccountKeysLength.length, 'staticAccountKeysLength'), BufferLayout.seq(publicKey(), this.staticAccountKeys.length, 'staticAccountKeys'), publicKey('recentBlockhash'), BufferLayout.blob(encodedInstructionsLength.length, 'instructionsLength'), BufferLayout.blob(serializedInstructions.length, 'serializedInstructions'), BufferLayout.blob(encodedAddressTableLookupsLength.length, 'addressTableLookupsLength'), BufferLayout.blob(serializedAddressTableLookups.length, 'serializedAddressTableLookups')]);\n const serializedMessage = new Uint8Array(PACKET_DATA_SIZE);\n const MESSAGE_VERSION_0_PREFIX = 1 << 7;\n const serializedMessageLength = messageLayout.encode({\n prefix: MESSAGE_VERSION_0_PREFIX,\n header: this.header,\n staticAccountKeysLength: new Uint8Array(encodedStaticAccountKeysLength),\n staticAccountKeys: this.staticAccountKeys.map(key => key.toBytes()),\n recentBlockhash: bs58.decode(this.recentBlockhash),\n instructionsLength: new Uint8Array(encodedInstructionsLength),\n serializedInstructions,\n addressTableLookupsLength: new Uint8Array(encodedAddressTableLookupsLength),\n serializedAddressTableLookups\n }, serializedMessage);\n return serializedMessage.slice(0, serializedMessageLength);\n }\n serializeInstructions() {\n let serializedLength = 0;\n const serializedInstructions = new Uint8Array(PACKET_DATA_SIZE);\n for (const instruction of this.compiledInstructions) {\n const encodedAccountKeyIndexesLength = Array();\n encodeLength(encodedAccountKeyIndexesLength, instruction.accountKeyIndexes.length);\n const encodedDataLength = Array();\n encodeLength(encodedDataLength, instruction.data.length);\n const instructionLayout = BufferLayout.struct([BufferLayout.u8('programIdIndex'), BufferLayout.blob(encodedAccountKeyIndexesLength.length, 'encodedAccountKeyIndexesLength'), BufferLayout.seq(BufferLayout.u8(), instruction.accountKeyIndexes.length, 'accountKeyIndexes'), BufferLayout.blob(encodedDataLength.length, 'encodedDataLength'), BufferLayout.blob(instruction.data.length, 'data')]);\n serializedLength += instructionLayout.encode({\n programIdIndex: instruction.programIdIndex,\n encodedAccountKeyIndexesLength: new Uint8Array(encodedAccountKeyIndexesLength),\n accountKeyIndexes: instruction.accountKeyIndexes,\n encodedDataLength: new Uint8Array(encodedDataLength),\n data: instruction.data\n }, serializedInstructions, serializedLength);\n }\n return serializedInstructions.slice(0, serializedLength);\n }\n serializeAddressTableLookups() {\n let serializedLength = 0;\n const serializedAddressTableLookups = new Uint8Array(PACKET_DATA_SIZE);\n for (const lookup of this.addressTableLookups) {\n const encodedWritableIndexesLength = Array();\n encodeLength(encodedWritableIndexesLength, lookup.writableIndexes.length);\n const encodedReadonlyIndexesLength = Array();\n encodeLength(encodedReadonlyIndexesLength, lookup.readonlyIndexes.length);\n const addressTableLookupLayout = BufferLayout.struct([publicKey('accountKey'), BufferLayout.blob(encodedWritableIndexesLength.length, 'encodedWritableIndexesLength'), BufferLayout.seq(BufferLayout.u8(), lookup.writableIndexes.length, 'writableIndexes'), BufferLayout.blob(encodedReadonlyIndexesLength.length, 'encodedReadonlyIndexesLength'), BufferLayout.seq(BufferLayout.u8(), lookup.readonlyIndexes.length, 'readonlyIndexes')]);\n serializedLength += addressTableLookupLayout.encode({\n accountKey: lookup.accountKey.toBytes(),\n encodedWritableIndexesLength: new Uint8Array(encodedWritableIndexesLength),\n writableIndexes: lookup.writableIndexes,\n encodedReadonlyIndexesLength: new Uint8Array(encodedReadonlyIndexesLength),\n readonlyIndexes: lookup.readonlyIndexes\n }, serializedAddressTableLookups, serializedLength);\n }\n return serializedAddressTableLookups.slice(0, serializedLength);\n }\n static deserialize(serializedMessage) {\n let byteArray = [...serializedMessage];\n const prefix = byteArray.shift();\n const maskedPrefix = prefix & VERSION_PREFIX_MASK;\n assert(prefix !== maskedPrefix, `Expected versioned message but received legacy message`);\n const version = maskedPrefix;\n assert(version === 0, `Expected versioned message with version 0 but found version ${version}`);\n const header = {\n numRequiredSignatures: byteArray.shift(),\n numReadonlySignedAccounts: byteArray.shift(),\n numReadonlyUnsignedAccounts: byteArray.shift()\n };\n const staticAccountKeys = [];\n const staticAccountKeysLength = decodeLength(byteArray);\n for (let i = 0; i < staticAccountKeysLength; i++) {\n staticAccountKeys.push(new PublicKey(byteArray.splice(0, PUBLIC_KEY_LENGTH)));\n }\n const recentBlockhash = bs58.encode(byteArray.splice(0, PUBLIC_KEY_LENGTH));\n const instructionCount = decodeLength(byteArray);\n const compiledInstructions = [];\n for (let i = 0; i < instructionCount; i++) {\n const programIdIndex = byteArray.shift();\n const accountKeyIndexesLength = decodeLength(byteArray);\n const accountKeyIndexes = byteArray.splice(0, accountKeyIndexesLength);\n const dataLength = decodeLength(byteArray);\n const data = new Uint8Array(byteArray.splice(0, dataLength));\n compiledInstructions.push({\n programIdIndex,\n accountKeyIndexes,\n data\n });\n }\n const addressTableLookupsCount = decodeLength(byteArray);\n const addressTableLookups = [];\n for (let i = 0; i < addressTableLookupsCount; i++) {\n const accountKey = new PublicKey(byteArray.splice(0, PUBLIC_KEY_LENGTH));\n const writableIndexesLength = decodeLength(byteArray);\n const writableIndexes = byteArray.splice(0, writableIndexesLength);\n const readonlyIndexesLength = decodeLength(byteArray);\n const readonlyIndexes = byteArray.splice(0, readonlyIndexesLength);\n addressTableLookups.push({\n accountKey,\n writableIndexes,\n readonlyIndexes\n });\n }\n return new MessageV0({\n header,\n staticAccountKeys,\n recentBlockhash,\n compiledInstructions,\n addressTableLookups\n });\n }\n}\n\n// eslint-disable-next-line no-redeclare\nconst VersionedMessage = {\n deserializeMessageVersion(serializedMessage) {\n const prefix = serializedMessage[0];\n const maskedPrefix = prefix & VERSION_PREFIX_MASK;\n\n // if the highest bit of the prefix is not set, the message is not versioned\n if (maskedPrefix === prefix) {\n return 'legacy';\n }\n\n // the lower 7 bits of the prefix indicate the message version\n return maskedPrefix;\n },\n deserialize: serializedMessage => {\n const version = VersionedMessage.deserializeMessageVersion(serializedMessage);\n if (version === 'legacy') {\n return Message.from(serializedMessage);\n }\n if (version === 0) {\n return MessageV0.deserialize(serializedMessage);\n } else {\n throw new Error(`Transaction message version ${version} deserialization is not supported`);\n }\n }\n};\n\n/**\n * Transaction signature as base-58 encoded string\n */\n\nlet TransactionStatus = /*#__PURE__*/function (TransactionStatus) {\n TransactionStatus[TransactionStatus[\"BLOCKHEIGHT_EXCEEDED\"] = 0] = \"BLOCKHEIGHT_EXCEEDED\";\n TransactionStatus[TransactionStatus[\"PROCESSED\"] = 1] = \"PROCESSED\";\n TransactionStatus[TransactionStatus[\"TIMED_OUT\"] = 2] = \"TIMED_OUT\";\n TransactionStatus[TransactionStatus[\"NONCE_INVALID\"] = 3] = \"NONCE_INVALID\";\n return TransactionStatus;\n}({});\n\n/**\n * Default (empty) signature\n */\nconst DEFAULT_SIGNATURE = Buffer.alloc(SIGNATURE_LENGTH_IN_BYTES).fill(0);\n\n/**\n * Account metadata used to define instructions\n */\n\n/**\n * List of TransactionInstruction object fields that may be initialized at construction\n */\n\n/**\n * Configuration object for Transaction.serialize()\n */\n\n/**\n * @internal\n */\n\n/**\n * Transaction Instruction class\n */\nclass TransactionInstruction {\n constructor(opts) {\n /**\n * Public keys to include in this transaction\n * Boolean represents whether this pubkey needs to sign the transaction\n */\n this.keys = void 0;\n /**\n * Program Id to execute\n */\n this.programId = void 0;\n /**\n * Program input\n */\n this.data = Buffer.alloc(0);\n this.programId = opts.programId;\n this.keys = opts.keys;\n if (opts.data) {\n this.data = opts.data;\n }\n }\n\n /**\n * @internal\n */\n toJSON() {\n return {\n keys: this.keys.map(({\n pubkey,\n isSigner,\n isWritable\n }) => ({\n pubkey: pubkey.toJSON(),\n isSigner,\n isWritable\n })),\n programId: this.programId.toJSON(),\n data: [...this.data]\n };\n }\n}\n\n/**\n * Pair of signature and corresponding public key\n */\n\n/**\n * List of Transaction object fields that may be initialized at construction\n */\n\n// For backward compatibility; an unfortunate consequence of being\n// forced to over-export types by the documentation generator.\n// See https://github.com/solana-labs/solana/pull/25820\n/**\n * Blockhash-based transactions have a lifetime that are defined by\n * the blockhash they include. Any transaction whose blockhash is\n * too old will be rejected.\n */\n/**\n * Use these options to construct a durable nonce transaction.\n */\n/**\n * Nonce information to be used to build an offline Transaction.\n */\n/**\n * @internal\n */\n/**\n * Transaction class\n */\nclass Transaction {\n /**\n * The first (payer) Transaction signature\n *\n * @returns {Buffer | null} Buffer of payer's signature\n */\n get signature() {\n if (this.signatures.length > 0) {\n return this.signatures[0].signature;\n }\n return null;\n }\n\n /**\n * The transaction fee payer\n */\n\n // Construct a transaction with a blockhash and lastValidBlockHeight\n\n // Construct a transaction using a durable nonce\n\n /**\n * @deprecated `TransactionCtorFields` has been deprecated and will be removed in a future version.\n * Please supply a `TransactionBlockhashCtor` instead.\n */\n\n /**\n * Construct an empty Transaction\n */\n constructor(opts) {\n /**\n * Signatures for the transaction. Typically created by invoking the\n * `sign()` method\n */\n this.signatures = [];\n this.feePayer = void 0;\n /**\n * The instructions to atomically execute\n */\n this.instructions = [];\n /**\n * A recent transaction id. Must be populated by the caller\n */\n this.recentBlockhash = void 0;\n /**\n * the last block chain can advance to before tx is declared expired\n * */\n this.lastValidBlockHeight = void 0;\n /**\n * Optional Nonce information. If populated, transaction will use a durable\n * Nonce hash instead of a recentBlockhash. Must be populated by the caller\n */\n this.nonceInfo = void 0;\n /**\n * If this is a nonce transaction this represents the minimum slot from which\n * to evaluate if the nonce has advanced when attempting to confirm the\n * transaction. This protects against a case where the transaction confirmation\n * logic loads the nonce account from an old slot and assumes the mismatch in\n * nonce value implies that the nonce has been advanced.\n */\n this.minNonceContextSlot = void 0;\n /**\n * @internal\n */\n this._message = void 0;\n /**\n * @internal\n */\n this._json = void 0;\n if (!opts) {\n return;\n }\n if (opts.feePayer) {\n this.feePayer = opts.feePayer;\n }\n if (opts.signatures) {\n this.signatures = opts.signatures;\n }\n if (Object.prototype.hasOwnProperty.call(opts, 'nonceInfo')) {\n const {\n minContextSlot,\n nonceInfo\n } = opts;\n this.minNonceContextSlot = minContextSlot;\n this.nonceInfo = nonceInfo;\n } else if (Object.prototype.hasOwnProperty.call(opts, 'lastValidBlockHeight')) {\n const {\n blockhash,\n lastValidBlockHeight\n } = opts;\n this.recentBlockhash = blockhash;\n this.lastValidBlockHeight = lastValidBlockHeight;\n } else {\n const {\n recentBlockhash,\n nonceInfo\n } = opts;\n if (nonceInfo) {\n this.nonceInfo = nonceInfo;\n }\n this.recentBlockhash = recentBlockhash;\n }\n }\n\n /**\n * @internal\n */\n toJSON() {\n return {\n recentBlockhash: this.recentBlockhash || null,\n feePayer: this.feePayer ? this.feePayer.toJSON() : null,\n nonceInfo: this.nonceInfo ? {\n nonce: this.nonceInfo.nonce,\n nonceInstruction: this.nonceInfo.nonceInstruction.toJSON()\n } : null,\n instructions: this.instructions.map(instruction => instruction.toJSON()),\n signers: this.signatures.map(({\n publicKey\n }) => {\n return publicKey.toJSON();\n })\n };\n }\n\n /**\n * Add one or more instructions to this Transaction\n *\n * @param {Array< Transaction | TransactionInstruction | TransactionInstructionCtorFields >} items - Instructions to add to the Transaction\n */\n add(...items) {\n if (items.length === 0) {\n throw new Error('No instructions');\n }\n items.forEach(item => {\n if ('instructions' in item) {\n this.instructions = this.instructions.concat(item.instructions);\n } else if ('data' in item && 'programId' in item && 'keys' in item) {\n this.instructions.push(item);\n } else {\n this.instructions.push(new TransactionInstruction(item));\n }\n });\n return this;\n }\n\n /**\n * Compile transaction data\n */\n compileMessage() {\n if (this._message && JSON.stringify(this.toJSON()) === JSON.stringify(this._json)) {\n return this._message;\n }\n let recentBlockhash;\n let instructions;\n if (this.nonceInfo) {\n recentBlockhash = this.nonceInfo.nonce;\n if (this.instructions[0] != this.nonceInfo.nonceInstruction) {\n instructions = [this.nonceInfo.nonceInstruction, ...this.instructions];\n } else {\n instructions = this.instructions;\n }\n } else {\n recentBlockhash = this.recentBlockhash;\n instructions = this.instructions;\n }\n if (!recentBlockhash) {\n throw new Error('Transaction recentBlockhash required');\n }\n if (instructions.length < 1) {\n console.warn('No instructions provided');\n }\n let feePayer;\n if (this.feePayer) {\n feePayer = this.feePayer;\n } else if (this.signatures.length > 0 && this.signatures[0].publicKey) {\n // Use implicit fee payer\n feePayer = this.signatures[0].publicKey;\n } else {\n throw new Error('Transaction fee payer required');\n }\n for (let i = 0; i < instructions.length; i++) {\n if (instructions[i].programId === undefined) {\n throw new Error(`Transaction instruction index ${i} has undefined program id`);\n }\n }\n const programIds = [];\n const accountMetas = [];\n instructions.forEach(instruction => {\n instruction.keys.forEach(accountMeta => {\n accountMetas.push({\n ...accountMeta\n });\n });\n const programId = instruction.programId.toString();\n if (!programIds.includes(programId)) {\n programIds.push(programId);\n }\n });\n\n // Append programID account metas\n programIds.forEach(programId => {\n accountMetas.push({\n pubkey: new PublicKey(programId),\n isSigner: false,\n isWritable: false\n });\n });\n\n // Cull duplicate account metas\n const uniqueMetas = [];\n accountMetas.forEach(accountMeta => {\n const pubkeyString = accountMeta.pubkey.toString();\n const uniqueIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.toString() === pubkeyString;\n });\n if (uniqueIndex > -1) {\n uniqueMetas[uniqueIndex].isWritable = uniqueMetas[uniqueIndex].isWritable || accountMeta.isWritable;\n uniqueMetas[uniqueIndex].isSigner = uniqueMetas[uniqueIndex].isSigner || accountMeta.isSigner;\n } else {\n uniqueMetas.push(accountMeta);\n }\n });\n\n // Sort. Prioritizing first by signer, then by writable\n uniqueMetas.sort(function (x, y) {\n if (x.isSigner !== y.isSigner) {\n // Signers always come before non-signers\n return x.isSigner ? -1 : 1;\n }\n if (x.isWritable !== y.isWritable) {\n // Writable accounts always come before read-only accounts\n return x.isWritable ? -1 : 1;\n }\n // Otherwise, sort by pubkey, stringwise.\n const options = {\n localeMatcher: 'best fit',\n usage: 'sort',\n sensitivity: 'variant',\n ignorePunctuation: false,\n numeric: false,\n caseFirst: 'lower'\n };\n return x.pubkey.toBase58().localeCompare(y.pubkey.toBase58(), 'en', options);\n });\n\n // Move fee payer to the front\n const feePayerIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.equals(feePayer);\n });\n if (feePayerIndex > -1) {\n const [payerMeta] = uniqueMetas.splice(feePayerIndex, 1);\n payerMeta.isSigner = true;\n payerMeta.isWritable = true;\n uniqueMetas.unshift(payerMeta);\n } else {\n uniqueMetas.unshift({\n pubkey: feePayer,\n isSigner: true,\n isWritable: true\n });\n }\n\n // Disallow unknown signers\n for (const signature of this.signatures) {\n const uniqueIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.equals(signature.publicKey);\n });\n if (uniqueIndex > -1) {\n if (!uniqueMetas[uniqueIndex].isSigner) {\n uniqueMetas[uniqueIndex].isSigner = true;\n console.warn('Transaction references a signature that is unnecessary, ' + 'only the fee payer and instruction signer accounts should sign a transaction. ' + 'This behavior is deprecated and will throw an error in the next major version release.');\n }\n } else {\n throw new Error(`unknown signer: ${signature.publicKey.toString()}`);\n }\n }\n let numRequiredSignatures = 0;\n let numReadonlySignedAccounts = 0;\n let numReadonlyUnsignedAccounts = 0;\n\n // Split out signing from non-signing keys and count header values\n const signedKeys = [];\n const unsignedKeys = [];\n uniqueMetas.forEach(({\n pubkey,\n isSigner,\n isWritable\n }) => {\n if (isSigner) {\n signedKeys.push(pubkey.toString());\n numRequiredSignatures += 1;\n if (!isWritable) {\n numReadonlySignedAccounts += 1;\n }\n } else {\n unsignedKeys.push(pubkey.toString());\n if (!isWritable) {\n numReadonlyUnsignedAccounts += 1;\n }\n }\n });\n const accountKeys = signedKeys.concat(unsignedKeys);\n const compiledInstructions = instructions.map(instruction => {\n const {\n data,\n programId\n } = instruction;\n return {\n programIdIndex: accountKeys.indexOf(programId.toString()),\n accounts: instruction.keys.map(meta => accountKeys.indexOf(meta.pubkey.toString())),\n data: bs58.encode(data)\n };\n });\n compiledInstructions.forEach(instruction => {\n assert(instruction.programIdIndex >= 0);\n instruction.accounts.forEach(keyIndex => assert(keyIndex >= 0));\n });\n return new Message({\n header: {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts\n },\n accountKeys,\n recentBlockhash,\n instructions: compiledInstructions\n });\n }\n\n /**\n * @internal\n */\n _compile() {\n const message = this.compileMessage();\n const signedKeys = message.accountKeys.slice(0, message.header.numRequiredSignatures);\n if (this.signatures.length === signedKeys.length) {\n const valid = this.signatures.every((pair, index) => {\n return signedKeys[index].equals(pair.publicKey);\n });\n if (valid) return message;\n }\n this.signatures = signedKeys.map(publicKey => ({\n signature: null,\n publicKey\n }));\n return message;\n }\n\n /**\n * Get a buffer of the Transaction data that need to be covered by signatures\n */\n serializeMessage() {\n return this._compile().serialize();\n }\n\n /**\n * Get the estimated fee associated with a transaction\n *\n * @param {Connection} connection Connection to RPC Endpoint.\n *\n * @returns {Promise} The estimated fee for the transaction\n */\n async getEstimatedFee(connection) {\n return (await connection.getFeeForMessage(this.compileMessage())).value;\n }\n\n /**\n * Specify the public keys which will be used to sign the Transaction.\n * The first signer will be used as the transaction fee payer account.\n *\n * Signatures can be added with either `partialSign` or `addSignature`\n *\n * @deprecated Deprecated since v0.84.0. Only the fee payer needs to be\n * specified and it can be set in the Transaction constructor or with the\n * `feePayer` property.\n */\n setSigners(...signers) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n const seen = new Set();\n this.signatures = signers.filter(publicKey => {\n const key = publicKey.toString();\n if (seen.has(key)) {\n return false;\n } else {\n seen.add(key);\n return true;\n }\n }).map(publicKey => ({\n signature: null,\n publicKey\n }));\n }\n\n /**\n * Sign the Transaction with the specified signers. Multiple signatures may\n * be applied to a Transaction. The first signature is considered \"primary\"\n * and is used identify and confirm transactions.\n *\n * If the Transaction `feePayer` is not set, the first signer will be used\n * as the transaction fee payer account.\n *\n * Transaction fields should not be modified after the first call to `sign`,\n * as doing so may invalidate the signature and cause the Transaction to be\n * rejected.\n *\n * The Transaction must be assigned a valid `recentBlockhash` before invoking this method\n *\n * @param {Array} signers Array of signers that will sign the transaction\n */\n sign(...signers) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n // Dedupe signers\n const seen = new Set();\n const uniqueSigners = [];\n for (const signer of signers) {\n const key = signer.publicKey.toString();\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n this.signatures = uniqueSigners.map(signer => ({\n signature: null,\n publicKey: signer.publicKey\n }));\n const message = this._compile();\n this._partialSign(message, ...uniqueSigners);\n }\n\n /**\n * Partially sign a transaction with the specified accounts. All accounts must\n * correspond to either the fee payer or a signer account in the transaction\n * instructions.\n *\n * All the caveats from the `sign` method apply to `partialSign`\n *\n * @param {Array} signers Array of signers that will sign the transaction\n */\n partialSign(...signers) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n // Dedupe signers\n const seen = new Set();\n const uniqueSigners = [];\n for (const signer of signers) {\n const key = signer.publicKey.toString();\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n const message = this._compile();\n this._partialSign(message, ...uniqueSigners);\n }\n\n /**\n * @internal\n */\n _partialSign(message, ...signers) {\n const signData = message.serialize();\n signers.forEach(signer => {\n const signature = sign(signData, signer.secretKey);\n this._addSignature(signer.publicKey, toBuffer(signature));\n });\n }\n\n /**\n * Add an externally created signature to a transaction. The public key\n * must correspond to either the fee payer or a signer account in the transaction\n * instructions.\n *\n * @param {PublicKey} pubkey Public key that will be added to the transaction.\n * @param {Buffer} signature An externally created signature to add to the transaction.\n */\n addSignature(pubkey, signature) {\n this._compile(); // Ensure signatures array is populated\n this._addSignature(pubkey, signature);\n }\n\n /**\n * @internal\n */\n _addSignature(pubkey, signature) {\n assert(signature.length === 64);\n const index = this.signatures.findIndex(sigpair => pubkey.equals(sigpair.publicKey));\n if (index < 0) {\n throw new Error(`unknown signer: ${pubkey.toString()}`);\n }\n this.signatures[index].signature = Buffer.from(signature);\n }\n\n /**\n * Verify signatures of a Transaction\n * Optional parameter specifies if we're expecting a fully signed Transaction or a partially signed one.\n * If no boolean is provided, we expect a fully signed Transaction by default.\n *\n * @param {boolean} [requireAllSignatures=true] Require a fully signed Transaction\n */\n verifySignatures(requireAllSignatures) {\n return this._verifySignatures(this.serializeMessage(), requireAllSignatures === undefined ? true : requireAllSignatures);\n }\n\n /**\n * @internal\n */\n _verifySignatures(signData, requireAllSignatures) {\n for (const {\n signature,\n publicKey\n } of this.signatures) {\n if (signature === null) {\n if (requireAllSignatures) {\n return false;\n }\n } else {\n if (!verify(signature, signData, publicKey.toBytes())) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * Serialize the Transaction in the wire format.\n *\n * @param {Buffer} [config] Config of transaction.\n *\n * @returns {Buffer} Signature of transaction in wire format.\n */\n serialize(config) {\n const {\n requireAllSignatures,\n verifySignatures\n } = Object.assign({\n requireAllSignatures: true,\n verifySignatures: true\n }, config);\n const signData = this.serializeMessage();\n if (verifySignatures && !this._verifySignatures(signData, requireAllSignatures)) {\n throw new Error('Signature verification failed');\n }\n return this._serialize(signData);\n }\n\n /**\n * @internal\n */\n _serialize(signData) {\n const {\n signatures\n } = this;\n const signatureCount = [];\n encodeLength(signatureCount, signatures.length);\n const transactionLength = signatureCount.length + signatures.length * 64 + signData.length;\n const wireTransaction = Buffer.alloc(transactionLength);\n assert(signatures.length < 256);\n Buffer.from(signatureCount).copy(wireTransaction, 0);\n signatures.forEach(({\n signature\n }, index) => {\n if (signature !== null) {\n assert(signature.length === 64, `signature has invalid length`);\n Buffer.from(signature).copy(wireTransaction, signatureCount.length + index * 64);\n }\n });\n signData.copy(wireTransaction, signatureCount.length + signatures.length * 64);\n assert(wireTransaction.length <= PACKET_DATA_SIZE, `Transaction too large: ${wireTransaction.length} > ${PACKET_DATA_SIZE}`);\n return wireTransaction;\n }\n\n /**\n * Deprecated method\n * @internal\n */\n get keys() {\n assert(this.instructions.length === 1);\n return this.instructions[0].keys.map(keyObj => keyObj.pubkey);\n }\n\n /**\n * Deprecated method\n * @internal\n */\n get programId() {\n assert(this.instructions.length === 1);\n return this.instructions[0].programId;\n }\n\n /**\n * Deprecated method\n * @internal\n */\n get data() {\n assert(this.instructions.length === 1);\n return this.instructions[0].data;\n }\n\n /**\n * Parse a wire transaction into a Transaction object.\n *\n * @param {Buffer | Uint8Array | Array} buffer Signature of wire Transaction\n *\n * @returns {Transaction} Transaction associated with the signature\n */\n static from(buffer) {\n // Slice up wire data\n let byteArray = [...buffer];\n const signatureCount = decodeLength(byteArray);\n let signatures = [];\n for (let i = 0; i < signatureCount; i++) {\n const signature = byteArray.slice(0, SIGNATURE_LENGTH_IN_BYTES);\n byteArray = byteArray.slice(SIGNATURE_LENGTH_IN_BYTES);\n signatures.push(bs58.encode(Buffer.from(signature)));\n }\n return Transaction.populate(Message.from(byteArray), signatures);\n }\n\n /**\n * Populate Transaction object from message and signatures\n *\n * @param {Message} message Message of transaction\n * @param {Array} signatures List of signatures to assign to the transaction\n *\n * @returns {Transaction} The populated Transaction\n */\n static populate(message, signatures = []) {\n const transaction = new Transaction();\n transaction.recentBlockhash = message.recentBlockhash;\n if (message.header.numRequiredSignatures > 0) {\n transaction.feePayer = message.accountKeys[0];\n }\n signatures.forEach((signature, index) => {\n const sigPubkeyPair = {\n signature: signature == bs58.encode(DEFAULT_SIGNATURE) ? null : bs58.decode(signature),\n publicKey: message.accountKeys[index]\n };\n transaction.signatures.push(sigPubkeyPair);\n });\n message.instructions.forEach(instruction => {\n const keys = instruction.accounts.map(account => {\n const pubkey = message.accountKeys[account];\n return {\n pubkey,\n isSigner: transaction.signatures.some(keyObj => keyObj.publicKey.toString() === pubkey.toString()) || message.isAccountSigner(account),\n isWritable: message.isAccountWritable(account)\n };\n });\n transaction.instructions.push(new TransactionInstruction({\n keys,\n programId: message.accountKeys[instruction.programIdIndex],\n data: bs58.decode(instruction.data)\n }));\n });\n transaction._message = message;\n transaction._json = transaction.toJSON();\n return transaction;\n }\n}\n\nclass TransactionMessage {\n constructor(args) {\n this.payerKey = void 0;\n this.instructions = void 0;\n this.recentBlockhash = void 0;\n this.payerKey = args.payerKey;\n this.instructions = args.instructions;\n this.recentBlockhash = args.recentBlockhash;\n }\n static decompile(message, args) {\n const {\n header,\n compiledInstructions,\n recentBlockhash\n } = message;\n const {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts\n } = header;\n const numWritableSignedAccounts = numRequiredSignatures - numReadonlySignedAccounts;\n assert(numWritableSignedAccounts > 0, 'Message header is invalid');\n const numWritableUnsignedAccounts = message.staticAccountKeys.length - numRequiredSignatures - numReadonlyUnsignedAccounts;\n assert(numWritableUnsignedAccounts >= 0, 'Message header is invalid');\n const accountKeys = message.getAccountKeys(args);\n const payerKey = accountKeys.get(0);\n if (payerKey === undefined) {\n throw new Error('Failed to decompile message because no account keys were found');\n }\n const instructions = [];\n for (const compiledIx of compiledInstructions) {\n const keys = [];\n for (const keyIndex of compiledIx.accountKeyIndexes) {\n const pubkey = accountKeys.get(keyIndex);\n if (pubkey === undefined) {\n throw new Error(`Failed to find key for account key index ${keyIndex}`);\n }\n const isSigner = keyIndex < numRequiredSignatures;\n let isWritable;\n if (isSigner) {\n isWritable = keyIndex < numWritableSignedAccounts;\n } else if (keyIndex < accountKeys.staticAccountKeys.length) {\n isWritable = keyIndex - numRequiredSignatures < numWritableUnsignedAccounts;\n } else {\n isWritable = keyIndex - accountKeys.staticAccountKeys.length <\n // accountKeysFromLookups cannot be undefined because we already found a pubkey for this index above\n accountKeys.accountKeysFromLookups.writable.length;\n }\n keys.push({\n pubkey,\n isSigner: keyIndex < header.numRequiredSignatures,\n isWritable\n });\n }\n const programId = accountKeys.get(compiledIx.programIdIndex);\n if (programId === undefined) {\n throw new Error(`Failed to find program id for program id index ${compiledIx.programIdIndex}`);\n }\n instructions.push(new TransactionInstruction({\n programId,\n data: toBuffer(compiledIx.data),\n keys\n }));\n }\n return new TransactionMessage({\n payerKey,\n instructions,\n recentBlockhash\n });\n }\n compileToLegacyMessage() {\n return Message.compile({\n payerKey: this.payerKey,\n recentBlockhash: this.recentBlockhash,\n instructions: this.instructions\n });\n }\n compileToV0Message(addressLookupTableAccounts) {\n return MessageV0.compile({\n payerKey: this.payerKey,\n recentBlockhash: this.recentBlockhash,\n instructions: this.instructions,\n addressLookupTableAccounts\n });\n }\n}\n\n/**\n * Versioned transaction class\n */\nclass VersionedTransaction {\n get version() {\n return this.message.version;\n }\n constructor(message, signatures) {\n this.signatures = void 0;\n this.message = void 0;\n if (signatures !== undefined) {\n assert(signatures.length === message.header.numRequiredSignatures, 'Expected signatures length to be equal to the number of required signatures');\n this.signatures = signatures;\n } else {\n const defaultSignatures = [];\n for (let i = 0; i < message.header.numRequiredSignatures; i++) {\n defaultSignatures.push(new Uint8Array(SIGNATURE_LENGTH_IN_BYTES));\n }\n this.signatures = defaultSignatures;\n }\n this.message = message;\n }\n serialize() {\n const serializedMessage = this.message.serialize();\n const encodedSignaturesLength = Array();\n encodeLength(encodedSignaturesLength, this.signatures.length);\n const transactionLayout = BufferLayout.struct([BufferLayout.blob(encodedSignaturesLength.length, 'encodedSignaturesLength'), BufferLayout.seq(signature(), this.signatures.length, 'signatures'), BufferLayout.blob(serializedMessage.length, 'serializedMessage')]);\n const serializedTransaction = new Uint8Array(2048);\n const serializedTransactionLength = transactionLayout.encode({\n encodedSignaturesLength: new Uint8Array(encodedSignaturesLength),\n signatures: this.signatures,\n serializedMessage\n }, serializedTransaction);\n return serializedTransaction.slice(0, serializedTransactionLength);\n }\n static deserialize(serializedTransaction) {\n let byteArray = [...serializedTransaction];\n const signatures = [];\n const signaturesLength = decodeLength(byteArray);\n for (let i = 0; i < signaturesLength; i++) {\n signatures.push(new Uint8Array(byteArray.splice(0, SIGNATURE_LENGTH_IN_BYTES)));\n }\n const message = VersionedMessage.deserialize(new Uint8Array(byteArray));\n return new VersionedTransaction(message, signatures);\n }\n sign(signers) {\n const messageData = this.message.serialize();\n const signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures);\n for (const signer of signers) {\n const signerIndex = signerPubkeys.findIndex(pubkey => pubkey.equals(signer.publicKey));\n assert(signerIndex >= 0, `Cannot sign with non signer key ${signer.publicKey.toBase58()}`);\n this.signatures[signerIndex] = sign(messageData, signer.secretKey);\n }\n }\n addSignature(publicKey, signature) {\n assert(signature.byteLength === 64, 'Signature must be 64 bytes long');\n const signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures);\n const signerIndex = signerPubkeys.findIndex(pubkey => pubkey.equals(publicKey));\n assert(signerIndex >= 0, `Can not add signature; \\`${publicKey.toBase58()}\\` is not required to sign this transaction`);\n this.signatures[signerIndex] = signature;\n }\n}\n\n// TODO: These constants should be removed in favor of reading them out of a\n// Syscall account\n\n/**\n * @internal\n */\nconst NUM_TICKS_PER_SECOND = 160;\n\n/**\n * @internal\n */\nconst DEFAULT_TICKS_PER_SLOT = 64;\n\n/**\n * @internal\n */\nconst NUM_SLOTS_PER_SECOND = NUM_TICKS_PER_SECOND / DEFAULT_TICKS_PER_SLOT;\n\n/**\n * @internal\n */\nconst MS_PER_SLOT = 1000 / NUM_SLOTS_PER_SECOND;\n\nconst SYSVAR_CLOCK_PUBKEY = new PublicKey('SysvarC1ock11111111111111111111111111111111');\nconst SYSVAR_EPOCH_SCHEDULE_PUBKEY = new PublicKey('SysvarEpochSchedu1e111111111111111111111111');\nconst SYSVAR_INSTRUCTIONS_PUBKEY = new PublicKey('Sysvar1nstructions1111111111111111111111111');\nconst SYSVAR_RECENT_BLOCKHASHES_PUBKEY = new PublicKey('SysvarRecentB1ockHashes11111111111111111111');\nconst SYSVAR_RENT_PUBKEY = new PublicKey('SysvarRent111111111111111111111111111111111');\nconst SYSVAR_REWARDS_PUBKEY = new PublicKey('SysvarRewards111111111111111111111111111111');\nconst SYSVAR_SLOT_HASHES_PUBKEY = new PublicKey('SysvarS1otHashes111111111111111111111111111');\nconst SYSVAR_SLOT_HISTORY_PUBKEY = new PublicKey('SysvarS1otHistory11111111111111111111111111');\nconst SYSVAR_STAKE_HISTORY_PUBKEY = new PublicKey('SysvarStakeHistory1111111111111111111111111');\n\n/**\n * Sign, send and confirm a transaction.\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Transaction} transaction\n * @param {Array} signers\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\nasync function sendAndConfirmTransaction(connection, transaction, signers, options) {\n const sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n maxRetries: options.maxRetries,\n minContextSlot: options.minContextSlot\n };\n const signature = await connection.sendTransaction(transaction, signers, sendOptions);\n let status;\n if (transaction.recentBlockhash != null && transaction.lastValidBlockHeight != null) {\n status = (await connection.confirmTransaction({\n abortSignal: options?.abortSignal,\n signature: signature,\n blockhash: transaction.recentBlockhash,\n lastValidBlockHeight: transaction.lastValidBlockHeight\n }, options && options.commitment)).value;\n } else if (transaction.minNonceContextSlot != null && transaction.nonceInfo != null) {\n const {\n nonceInstruction\n } = transaction.nonceInfo;\n const nonceAccountPubkey = nonceInstruction.keys[0].pubkey;\n status = (await connection.confirmTransaction({\n abortSignal: options?.abortSignal,\n minContextSlot: transaction.minNonceContextSlot,\n nonceAccountPubkey,\n nonceValue: transaction.nonceInfo.nonce,\n signature\n }, options && options.commitment)).value;\n } else {\n if (options?.abortSignal != null) {\n console.warn('sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was ' + 'supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` ' + 'or a combination of `nonceInfo` and `minNonceContextSlot` are abortable.');\n }\n status = (await connection.confirmTransaction(signature, options && options.commitment)).value;\n }\n if (status.err) {\n throw new Error(`Transaction ${signature} failed (${JSON.stringify(status)})`);\n }\n return signature;\n}\n\n// zzz\nfunction sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * @internal\n */\n\n/**\n * Populate a buffer of instruction data using an InstructionType\n * @internal\n */\nfunction encodeData(type, fields) {\n const allocLength = type.layout.span >= 0 ? type.layout.span : getAlloc(type, fields);\n const data = Buffer.alloc(allocLength);\n const layoutFields = Object.assign({\n instruction: type.index\n }, fields);\n type.layout.encode(layoutFields, data);\n return data;\n}\n\n/**\n * Decode instruction data buffer using an InstructionType\n * @internal\n */\nfunction decodeData$1(type, buffer) {\n let data;\n try {\n data = type.layout.decode(buffer);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n if (data.instruction !== type.index) {\n throw new Error(`invalid instruction; instruction index mismatch ${data.instruction} != ${type.index}`);\n }\n return data;\n}\n\n/**\n * https://github.com/solana-labs/solana/blob/90bedd7e067b5b8f3ddbb45da00a4e9cabb22c62/sdk/src/fee_calculator.rs#L7-L11\n *\n * @internal\n */\nconst FeeCalculatorLayout = BufferLayout.nu64('lamportsPerSignature');\n\n/**\n * Calculator for transaction fees.\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * See https://github.com/solana-labs/solana/blob/0ea2843ec9cdc517572b8e62c959f41b55cf4453/sdk/src/nonce_state.rs#L29-L32\n *\n * @internal\n */\nconst NonceAccountLayout = BufferLayout.struct([BufferLayout.u32('version'), BufferLayout.u32('state'), publicKey('authorizedPubkey'), publicKey('nonce'), BufferLayout.struct([FeeCalculatorLayout], 'feeCalculator')]);\nconst NONCE_ACCOUNT_LENGTH = NonceAccountLayout.span;\n\n/**\n * A durable nonce is a 32 byte value encoded as a base58 string.\n */\n\n/**\n * NonceAccount class\n */\nclass NonceAccount {\n /**\n * @internal\n */\n constructor(args) {\n this.authorizedPubkey = void 0;\n this.nonce = void 0;\n this.feeCalculator = void 0;\n this.authorizedPubkey = args.authorizedPubkey;\n this.nonce = args.nonce;\n this.feeCalculator = args.feeCalculator;\n }\n\n /**\n * Deserialize NonceAccount from the account data.\n *\n * @param buffer account data\n * @return NonceAccount\n */\n static fromAccountData(buffer) {\n const nonceAccount = NonceAccountLayout.decode(toBuffer(buffer), 0);\n return new NonceAccount({\n authorizedPubkey: new PublicKey(nonceAccount.authorizedPubkey),\n nonce: new PublicKey(nonceAccount.nonce).toString(),\n feeCalculator: nonceAccount.feeCalculator\n });\n }\n}\n\nconst encodeDecode = layout => {\n const decode = layout.decode.bind(layout);\n const encode = layout.encode.bind(layout);\n return {\n decode,\n encode\n };\n};\nconst bigInt = length => property => {\n const layout = blob(length, property);\n const {\n encode,\n decode\n } = encodeDecode(layout);\n const bigIntLayout = layout;\n bigIntLayout.decode = (buffer, offset) => {\n const src = decode(buffer, offset);\n return toBigIntLE(Buffer.from(src));\n };\n bigIntLayout.encode = (bigInt, buffer, offset) => {\n const src = toBufferLE(bigInt, length);\n return encode(src, buffer, offset);\n };\n return bigIntLayout;\n};\nconst u64 = bigInt(8);\n\n/**\n * Create account system transaction params\n */\n\n/**\n * Transfer system transaction params\n */\n\n/**\n * Assign system transaction params\n */\n\n/**\n * Create account with seed system transaction params\n */\n\n/**\n * Create nonce account system transaction params\n */\n\n/**\n * Create nonce account with seed system transaction params\n */\n\n/**\n * Initialize nonce account system instruction params\n */\n\n/**\n * Advance nonce account system instruction params\n */\n\n/**\n * Withdraw nonce account system transaction params\n */\n\n/**\n * Authorize nonce account system transaction params\n */\n\n/**\n * Allocate account system transaction params\n */\n\n/**\n * Allocate account with seed system transaction params\n */\n\n/**\n * Assign account with seed system transaction params\n */\n\n/**\n * Transfer with seed system transaction params\n */\n\n/** Decoded transfer system transaction instruction */\n\n/** Decoded transferWithSeed system transaction instruction */\n\n/**\n * System Instruction class\n */\nclass SystemInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a system instruction and retrieve the instruction type.\n */\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n for (const [ixType, layout] of Object.entries(SYSTEM_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n if (!type) {\n throw new Error('Instruction type incorrect; not a SystemInstruction');\n }\n return type;\n }\n\n /**\n * Decode a create account system instruction and retrieve the instruction params.\n */\n static decodeCreateAccount(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n lamports,\n space,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Create, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n lamports,\n space,\n programId: new PublicKey(programId)\n };\n }\n\n /**\n * Decode a transfer system instruction and retrieve the instruction params.\n */\n static decodeTransfer(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n lamports\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Transfer, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n lamports\n };\n }\n\n /**\n * Decode a transfer with seed system instruction and retrieve the instruction params.\n */\n static decodeTransferWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n lamports,\n seed,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n basePubkey: instruction.keys[1].pubkey,\n toPubkey: instruction.keys[2].pubkey,\n lamports,\n seed,\n programId: new PublicKey(programId)\n };\n }\n\n /**\n * Decode an allocate system instruction and retrieve the instruction params.\n */\n static decodeAllocate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n space\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Allocate, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n space\n };\n }\n\n /**\n * Decode an allocate with seed system instruction and retrieve the instruction params.\n */\n static decodeAllocateWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n base,\n seed,\n space,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n space,\n programId: new PublicKey(programId)\n };\n }\n\n /**\n * Decode an assign system instruction and retrieve the instruction params.\n */\n static decodeAssign(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Assign, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n programId: new PublicKey(programId)\n };\n }\n\n /**\n * Decode an assign with seed system instruction and retrieve the instruction params.\n */\n static decodeAssignWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n base,\n seed,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n programId: new PublicKey(programId)\n };\n }\n\n /**\n * Decode a create account with seed system instruction and retrieve the instruction params.\n */\n static decodeCreateWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n base,\n seed,\n lamports,\n space,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n lamports,\n space,\n programId: new PublicKey(programId)\n };\n }\n\n /**\n * Decode a nonce initialize system instruction and retrieve the instruction params.\n */\n static decodeNonceInitialize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n authorized\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: new PublicKey(authorized)\n };\n }\n\n /**\n * Decode a nonce advance system instruction and retrieve the instruction params.\n */\n static decodeNonceAdvance(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey\n };\n }\n\n /**\n * Decode a nonce withdraw system instruction and retrieve the instruction params.\n */\n static decodeNonceWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n const {\n lamports\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports\n };\n }\n\n /**\n * Decode a nonce authorize system instruction and retrieve the instruction params.\n */\n static decodeNonceAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n authorized\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[1].pubkey,\n newAuthorizedPubkey: new PublicKey(authorized)\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId) {\n if (!programId.equals(SystemProgram.programId)) {\n throw new Error('invalid instruction; programId is not SystemProgram');\n }\n }\n\n /**\n * @internal\n */\n static checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n}\n\n/**\n * An enumeration of valid SystemInstructionType's\n */\n\n/**\n * An enumeration of valid system InstructionType's\n * @internal\n */\nconst SYSTEM_INSTRUCTION_LAYOUTS = Object.freeze({\n Create: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports'), BufferLayout.ns64('space'), publicKey('programId')])\n },\n Assign: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('programId')])\n },\n Transfer: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64('lamports')])\n },\n CreateWithSeed: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('base'), rustString('seed'), BufferLayout.ns64('lamports'), BufferLayout.ns64('space'), publicKey('programId')])\n },\n AdvanceNonceAccount: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n WithdrawNonceAccount: {\n index: 5,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n InitializeNonceAccount: {\n index: 6,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('authorized')])\n },\n AuthorizeNonceAccount: {\n index: 7,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('authorized')])\n },\n Allocate: {\n index: 8,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('space')])\n },\n AllocateWithSeed: {\n index: 9,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('base'), rustString('seed'), BufferLayout.ns64('space'), publicKey('programId')])\n },\n AssignWithSeed: {\n index: 10,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('base'), rustString('seed'), publicKey('programId')])\n },\n TransferWithSeed: {\n index: 11,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64('lamports'), rustString('seed'), publicKey('programId')])\n },\n UpgradeNonceAccount: {\n index: 12,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n }\n});\n\n/**\n * Factory class for transactions to interact with the System program\n */\nclass SystemProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the System program\n */\n\n /**\n * Generate a transaction instruction that creates a new account\n */\n static createAccount(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Create;\n const data = encodeData(type, {\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.newAccountPubkey,\n isSigner: true,\n isWritable: true\n }],\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction instruction that transfers lamports from one account to another\n */\n static transfer(params) {\n let data;\n let keys;\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed;\n data = encodeData(type, {\n lamports: BigInt(params.lamports),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.fromPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Transfer;\n data = encodeData(type, {\n lamports: BigInt(params.lamports)\n });\n keys = [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }];\n }\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction instruction that assigns an account to a program\n */\n static assign(params) {\n let data;\n let keys;\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed;\n data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Assign;\n data = encodeData(type, {\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: true,\n isWritable: true\n }];\n }\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction instruction that creates a new account at\n * an address generated with `from`, a seed, and programId\n */\n static createAccountWithSeed(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed;\n const data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n let keys = [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.newAccountPubkey,\n isSigner: false,\n isWritable: true\n }];\n if (params.basePubkey != params.fromPubkey) {\n keys.push({\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n });\n }\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction that creates a new Nonce account\n */\n static createNonceAccount(params) {\n const transaction = new Transaction();\n if ('basePubkey' in params && 'seed' in params) {\n transaction.add(SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId\n }));\n } else {\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId\n }));\n }\n const initParams = {\n noncePubkey: params.noncePubkey,\n authorizedPubkey: params.authorizedPubkey\n };\n transaction.add(this.nonceInitialize(initParams));\n return transaction;\n }\n\n /**\n * Generate an instruction to initialize a Nonce account\n */\n static nonceInitialize(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount;\n const data = encodeData(type, {\n authorized: toBuffer(params.authorizedPubkey.toBuffer())\n });\n const instructionData = {\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate an instruction to advance the nonce in a Nonce account\n */\n static nonceAdvance(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount;\n const data = encodeData(type);\n const instructionData = {\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate a transaction instruction that withdraws lamports from a Nonce account\n */\n static nonceWithdraw(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount;\n const data = encodeData(type, {\n lamports: params.lamports\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction instruction that authorizes a new PublicKey as the authority\n * on a Nonce account.\n */\n static nonceAuthorize(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount;\n const data = encodeData(type, {\n authorized: toBuffer(params.newAuthorizedPubkey.toBuffer())\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction instruction that allocates space in an account without funding\n */\n static allocate(params) {\n let data;\n let keys;\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed;\n data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Allocate;\n data = encodeData(type, {\n space: params.space\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: true,\n isWritable: true\n }];\n }\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n}\nSystemProgram.programId = new PublicKey('11111111111111111111111111111111');\n\n// Keep program chunks under PACKET_DATA_SIZE, leaving enough room for the\n// rest of the Transaction fields\n//\n// TODO: replace 300 with a proper constant for the size of the other\n// Transaction fields\nconst CHUNK_SIZE = PACKET_DATA_SIZE - 300;\n\n/**\n * Program loader interface\n */\nclass Loader {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Amount of program data placed in each load Transaction\n */\n\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n static getMinNumSignatures(dataLength) {\n return 2 * (\n // Every transaction requires two signatures (payer + program)\n Math.ceil(dataLength / Loader.chunkSize) + 1 +\n // Add one for Create transaction\n 1) // Add one for Finalize transaction\n ;\n }\n\n /**\n * Loads a generic program\n *\n * @param connection The connection to use\n * @param payer System account that pays to load the program\n * @param program Account to load the program into\n * @param programId Public key that identifies the loader\n * @param data Program octets\n * @return true if program was loaded successfully, false if program was already loaded\n */\n static async load(connection, payer, program, programId, data) {\n {\n const balanceNeeded = await connection.getMinimumBalanceForRentExemption(data.length);\n\n // Fetch program account info to check if it has already been created\n const programInfo = await connection.getAccountInfo(program.publicKey, 'confirmed');\n let transaction = null;\n if (programInfo !== null) {\n if (programInfo.executable) {\n console.error('Program load failed, account is already executable');\n return false;\n }\n if (programInfo.data.length !== data.length) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.allocate({\n accountPubkey: program.publicKey,\n space: data.length\n }));\n }\n if (!programInfo.owner.equals(programId)) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.assign({\n accountPubkey: program.publicKey,\n programId\n }));\n }\n if (programInfo.lamports < balanceNeeded) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.transfer({\n fromPubkey: payer.publicKey,\n toPubkey: program.publicKey,\n lamports: balanceNeeded - programInfo.lamports\n }));\n }\n } else {\n transaction = new Transaction().add(SystemProgram.createAccount({\n fromPubkey: payer.publicKey,\n newAccountPubkey: program.publicKey,\n lamports: balanceNeeded > 0 ? balanceNeeded : 1,\n space: data.length,\n programId\n }));\n }\n\n // If the account is already created correctly, skip this step\n // and proceed directly to loading instructions\n if (transaction !== null) {\n await sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed'\n });\n }\n }\n const dataLayout = BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.u32('offset'), BufferLayout.u32('bytesLength'), BufferLayout.u32('bytesLengthPadding'), BufferLayout.seq(BufferLayout.u8('byte'), BufferLayout.offset(BufferLayout.u32(), -8), 'bytes')]);\n const chunkSize = Loader.chunkSize;\n let offset = 0;\n let array = data;\n let transactions = [];\n while (array.length > 0) {\n const bytes = array.slice(0, chunkSize);\n const data = Buffer.alloc(chunkSize + 16);\n dataLayout.encode({\n instruction: 0,\n // Load instruction\n offset,\n bytes: bytes,\n bytesLength: 0,\n bytesLengthPadding: 0\n }, data);\n const transaction = new Transaction().add({\n keys: [{\n pubkey: program.publicKey,\n isSigner: true,\n isWritable: true\n }],\n programId,\n data\n });\n transactions.push(sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed'\n }));\n\n // Delay between sends in an attempt to reduce rate limit errors\n if (connection._rpcEndpoint.includes('solana.com')) {\n const REQUESTS_PER_SECOND = 4;\n await sleep(1000 / REQUESTS_PER_SECOND);\n }\n offset += chunkSize;\n array = array.slice(chunkSize);\n }\n await Promise.all(transactions);\n\n // Finalize the account loaded with program data for execution\n {\n const dataLayout = BufferLayout.struct([BufferLayout.u32('instruction')]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode({\n instruction: 1 // Finalize instruction\n }, data);\n const transaction = new Transaction().add({\n keys: [{\n pubkey: program.publicKey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId,\n data\n });\n const deployCommitment = 'processed';\n const finalizeSignature = await connection.sendTransaction(transaction, [payer, program], {\n preflightCommitment: deployCommitment\n });\n const {\n context,\n value\n } = await connection.confirmTransaction({\n signature: finalizeSignature,\n lastValidBlockHeight: transaction.lastValidBlockHeight,\n blockhash: transaction.recentBlockhash\n }, deployCommitment);\n if (value.err) {\n throw new Error(`Transaction ${finalizeSignature} failed (${JSON.stringify(value)})`);\n }\n // We prevent programs from being usable until the slot after their deployment.\n // See https://github.com/solana-labs/solana/pull/29654\n while (true // eslint-disable-line no-constant-condition\n ) {\n try {\n const currentSlot = await connection.getSlot({\n commitment: deployCommitment\n });\n if (currentSlot > context.slot) {\n break;\n }\n } catch {\n /* empty */\n }\n await new Promise(resolve => setTimeout(resolve, Math.round(MS_PER_SLOT / 2)));\n }\n }\n\n // success\n return true;\n }\n}\nLoader.chunkSize = CHUNK_SIZE;\n\nconst BPF_LOADER_PROGRAM_ID = new PublicKey('BPFLoader2111111111111111111111111111111111');\n\n/**\n * Factory class for transactions to interact with a program loader\n */\nclass BpfLoader {\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n static getMinNumSignatures(dataLength) {\n return Loader.getMinNumSignatures(dataLength);\n }\n\n /**\n * Load a SBF program\n *\n * @param connection The connection to use\n * @param payer Account that will pay program loading fees\n * @param program Account to load the program into\n * @param elf The entire ELF containing the SBF program\n * @param loaderProgramId The program id of the BPF loader to use\n * @return true if program was loaded successfully, false if program was already loaded\n */\n static load(connection, payer, program, elf, loaderProgramId) {\n return Loader.load(connection, payer, program, loaderProgramId, elf);\n }\n}\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar objToString = Object.prototype.toString;\nvar objKeys = Object.keys || function(obj) {\n\t\tvar keys = [];\n\t\tfor (var name in obj) {\n\t\t\tkeys.push(name);\n\t\t}\n\t\treturn keys;\n\t};\n\nfunction stringify(val, isArrayProp) {\n\tvar i, max, str, keys, key, propVal, toStr;\n\tif (val === true) {\n\t\treturn \"true\";\n\t}\n\tif (val === false) {\n\t\treturn \"false\";\n\t}\n\tswitch (typeof val) {\n\t\tcase \"object\":\n\t\t\tif (val === null) {\n\t\t\t\treturn null;\n\t\t\t} else if (val.toJSON && typeof val.toJSON === \"function\") {\n\t\t\t\treturn stringify(val.toJSON(), isArrayProp);\n\t\t\t} else {\n\t\t\t\ttoStr = objToString.call(val);\n\t\t\t\tif (toStr === \"[object Array]\") {\n\t\t\t\t\tstr = '[';\n\t\t\t\t\tmax = val.length - 1;\n\t\t\t\t\tfor(i = 0; i < max; i++) {\n\t\t\t\t\t\tstr += stringify(val[i], true) + ',';\n\t\t\t\t\t}\n\t\t\t\t\tif (max > -1) {\n\t\t\t\t\t\tstr += stringify(val[i], true);\n\t\t\t\t\t}\n\t\t\t\t\treturn str + ']';\n\t\t\t\t} else if (toStr === \"[object Object]\") {\n\t\t\t\t\t// only object is left\n\t\t\t\t\tkeys = objKeys(val).sort();\n\t\t\t\t\tmax = keys.length;\n\t\t\t\t\tstr = \"\";\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile (i < max) {\n\t\t\t\t\t\tkey = keys[i];\n\t\t\t\t\t\tpropVal = stringify(val[key], false);\n\t\t\t\t\t\tif (propVal !== undefined) {\n\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\tstr += ',';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += JSON.stringify(key) + ':' + propVal;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\treturn '{' + str + '}';\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"function\":\n\t\tcase \"undefined\":\n\t\t\treturn isArrayProp ? null : undefined;\n\t\tcase \"string\":\n\t\t\treturn JSON.stringify(val);\n\t\tdefault:\n\t\t\treturn isFinite(val) ? val : null;\n\t}\n}\n\nvar fastStableStringify = function(val) {\n\tvar returnVal = stringify(val, false);\n\tif (returnVal !== undefined) {\n\t\treturn ''+ returnVal;\n\t}\n};\n\nvar fastStableStringify$1 = /*@__PURE__*/getDefaultExportFromCjs(fastStableStringify);\n\nconst MINIMUM_SLOT_PER_EPOCH = 32;\n\n// Returns the number of trailing zeros in the binary representation of self.\nfunction trailingZeros(n) {\n let trailingZeros = 0;\n while (n > 1) {\n n /= 2;\n trailingZeros++;\n }\n return trailingZeros;\n}\n\n// Returns the smallest power of two greater than or equal to n\nfunction nextPowerOfTwo(n) {\n if (n === 0) return 1;\n n--;\n n |= n >> 1;\n n |= n >> 2;\n n |= n >> 4;\n n |= n >> 8;\n n |= n >> 16;\n n |= n >> 32;\n return n + 1;\n}\n\n/**\n * Epoch schedule\n * (see https://docs.solana.com/terminology#epoch)\n * Can be retrieved with the {@link Connection.getEpochSchedule} method\n */\nclass EpochSchedule {\n constructor(slotsPerEpoch, leaderScheduleSlotOffset, warmup, firstNormalEpoch, firstNormalSlot) {\n /** The maximum number of slots in each epoch */\n this.slotsPerEpoch = void 0;\n /** The number of slots before beginning of an epoch to calculate a leader schedule for that epoch */\n this.leaderScheduleSlotOffset = void 0;\n /** Indicates whether epochs start short and grow */\n this.warmup = void 0;\n /** The first epoch with `slotsPerEpoch` slots */\n this.firstNormalEpoch = void 0;\n /** The first slot of `firstNormalEpoch` */\n this.firstNormalSlot = void 0;\n this.slotsPerEpoch = slotsPerEpoch;\n this.leaderScheduleSlotOffset = leaderScheduleSlotOffset;\n this.warmup = warmup;\n this.firstNormalEpoch = firstNormalEpoch;\n this.firstNormalSlot = firstNormalSlot;\n }\n getEpoch(slot) {\n return this.getEpochAndSlotIndex(slot)[0];\n }\n getEpochAndSlotIndex(slot) {\n if (slot < this.firstNormalSlot) {\n const epoch = trailingZeros(nextPowerOfTwo(slot + MINIMUM_SLOT_PER_EPOCH + 1)) - trailingZeros(MINIMUM_SLOT_PER_EPOCH) - 1;\n const epochLen = this.getSlotsInEpoch(epoch);\n const slotIndex = slot - (epochLen - MINIMUM_SLOT_PER_EPOCH);\n return [epoch, slotIndex];\n } else {\n const normalSlotIndex = slot - this.firstNormalSlot;\n const normalEpochIndex = Math.floor(normalSlotIndex / this.slotsPerEpoch);\n const epoch = this.firstNormalEpoch + normalEpochIndex;\n const slotIndex = normalSlotIndex % this.slotsPerEpoch;\n return [epoch, slotIndex];\n }\n }\n getFirstSlotInEpoch(epoch) {\n if (epoch <= this.firstNormalEpoch) {\n return (Math.pow(2, epoch) - 1) * MINIMUM_SLOT_PER_EPOCH;\n } else {\n return (epoch - this.firstNormalEpoch) * this.slotsPerEpoch + this.firstNormalSlot;\n }\n }\n getLastSlotInEpoch(epoch) {\n return this.getFirstSlotInEpoch(epoch) + this.getSlotsInEpoch(epoch) - 1;\n }\n getSlotsInEpoch(epoch) {\n if (epoch < this.firstNormalEpoch) {\n return Math.pow(2, epoch + trailingZeros(MINIMUM_SLOT_PER_EPOCH));\n } else {\n return this.slotsPerEpoch;\n }\n }\n}\n\nclass SendTransactionError extends Error {\n constructor(message, logs) {\n super(message);\n this.logs = void 0;\n this.logs = logs;\n }\n}\n\n// Keep in sync with client/src/rpc_custom_errors.rs\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nconst SolanaJSONRPCErrorCode = {\n JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001,\n JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003,\n JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004,\n JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005,\n JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006,\n JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007,\n JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008,\n JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009,\n JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010,\n JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011,\n JSON_RPC_SCAN_ERROR: -32012,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013,\n JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014,\n JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015,\n JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016\n};\nclass SolanaJSONRPCError extends Error {\n constructor({\n code,\n message,\n data\n }, customMessage) {\n super(customMessage != null ? `${customMessage}: ${message}` : message);\n this.code = void 0;\n this.data = void 0;\n this.code = code;\n this.data = data;\n this.name = 'SolanaJSONRPCError';\n }\n}\n\nvar fetchImpl = globalThis.fetch;\n\nclass RpcWebSocketClient extends RpcWebSocketCommonClient {\n constructor(address, options, generate_request_id) {\n const webSocketFactory = url => {\n const rpc = createRpc(url, {\n autoconnect: true,\n max_reconnects: 5,\n reconnect: true,\n reconnect_interval: 1000,\n ...options\n });\n if ('socket' in rpc) {\n this.underlyingSocket = rpc.socket;\n } else {\n this.underlyingSocket = rpc;\n }\n return rpc;\n };\n super(webSocketFactory, address, options, generate_request_id);\n this.underlyingSocket = void 0;\n }\n call(...args) {\n const readyState = this.underlyingSocket?.readyState;\n if (readyState === 1 /* WebSocket.OPEN */) {\n return super.call(...args);\n }\n return Promise.reject(new Error('Tried to call a JSON-RPC method `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));\n }\n notify(...args) {\n const readyState = this.underlyingSocket?.readyState;\n if (readyState === 1 /* WebSocket.OPEN */) {\n return super.notify(...args);\n }\n return Promise.reject(new Error('Tried to send a JSON-RPC notification `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));\n }\n}\n\n/**\n * @internal\n */\n\n/**\n * Decode account data buffer using an AccountType\n * @internal\n */\nfunction decodeData(type, data) {\n let decoded;\n try {\n decoded = type.layout.decode(data);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n if (decoded.typeIndex !== type.index) {\n throw new Error(`invalid account data; account type mismatch ${decoded.typeIndex} != ${type.index}`);\n }\n return decoded;\n}\n\n/// The serialized size of lookup table metadata\nconst LOOKUP_TABLE_META_SIZE = 56;\nclass AddressLookupTableAccount {\n constructor(args) {\n this.key = void 0;\n this.state = void 0;\n this.key = args.key;\n this.state = args.state;\n }\n isActive() {\n const U64_MAX = BigInt('0xffffffffffffffff');\n return this.state.deactivationSlot === U64_MAX;\n }\n static deserialize(accountData) {\n const meta = decodeData(LookupTableMetaLayout, accountData);\n const serializedAddressesLen = accountData.length - LOOKUP_TABLE_META_SIZE;\n assert(serializedAddressesLen >= 0, 'lookup table is invalid');\n assert(serializedAddressesLen % 32 === 0, 'lookup table is invalid');\n const numSerializedAddresses = serializedAddressesLen / 32;\n const {\n addresses\n } = BufferLayout.struct([BufferLayout.seq(publicKey(), numSerializedAddresses, 'addresses')]).decode(accountData.slice(LOOKUP_TABLE_META_SIZE));\n return {\n deactivationSlot: meta.deactivationSlot,\n lastExtendedSlot: meta.lastExtendedSlot,\n lastExtendedSlotStartIndex: meta.lastExtendedStartIndex,\n authority: meta.authority.length !== 0 ? new PublicKey(meta.authority[0]) : undefined,\n addresses: addresses.map(address => new PublicKey(address))\n };\n }\n}\nconst LookupTableMetaLayout = {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('typeIndex'), u64('deactivationSlot'), BufferLayout.nu64('lastExtendedSlot'), BufferLayout.u8('lastExtendedStartIndex'), BufferLayout.u8(),\n // option\n BufferLayout.seq(publicKey(), BufferLayout.offset(BufferLayout.u8(), -1), 'authority')])\n};\n\nconst URL_RE = /^[^:]+:\\/\\/([^:[]+|\\[[^\\]]+\\])(:\\d+)?(.*)/i;\nfunction makeWebsocketUrl(endpoint) {\n const matches = endpoint.match(URL_RE);\n if (matches == null) {\n throw TypeError(`Failed to validate endpoint URL \\`${endpoint}\\``);\n }\n const [_,\n // eslint-disable-line @typescript-eslint/no-unused-vars\n hostish, portWithColon, rest] = matches;\n const protocol = endpoint.startsWith('https:') ? 'wss:' : 'ws:';\n const startPort = portWithColon == null ? null : parseInt(portWithColon.slice(1), 10);\n const websocketPort =\n // Only shift the port by +1 as a convention for ws(s) only if given endpoint\n // is explicitly specifying the endpoint port (HTTP-based RPC), assuming\n // we're directly trying to connect to solana-validator's ws listening port.\n // When the endpoint omits the port, we're connecting to the protocol\n // default ports: http(80) or https(443) and it's assumed we're behind a reverse\n // proxy which manages WebSocket upgrade and backend port redirection.\n startPort == null ? '' : `:${startPort + 1}`;\n return `${protocol}//${hostish}${websocketPort}${rest}`;\n}\n\nconst PublicKeyFromString = coerce(instance(PublicKey), string(), value => new PublicKey(value));\nconst RawAccountDataResult = tuple([string(), literal('base64')]);\nconst BufferFromRawAccountData = coerce(instance(Buffer), RawAccountDataResult, value => Buffer.from(value[0], 'base64'));\n\n/**\n * Attempt to use a recent blockhash for up to 30 seconds\n * @internal\n */\nconst BLOCKHASH_CACHE_TIMEOUT_MS = 30 * 1000;\n\n/**\n * HACK.\n * Copied from rpc-websockets/dist/lib/client.\n * Otherwise, `yarn build` fails with:\n * https://gist.github.com/steveluscher/c057eca81d479ef705cdb53162f9971d\n */\n\n/** @internal */\n/** @internal */\n/** @internal */\n/** @internal */\n\n/** @internal */\n/**\n * @internal\n * Every subscription contains the args used to open the subscription with\n * the server, and a list of callers interested in notifications.\n */\n\n/**\n * @internal\n * A subscription may be in various states of connectedness. Only when it is\n * fully connected will it have a server subscription id associated with it.\n * This id can be returned to the server to unsubscribe the client entirely.\n */\n\n/**\n * A type that encapsulates a subscription's RPC method\n * names and notification (callback) signature.\n */\n\n/**\n * @internal\n * Utility type that keeps tagged unions intact while omitting properties.\n */\n\n/**\n * @internal\n * This type represents a single subscribable 'topic.' It's made up of:\n *\n * - The args used to open the subscription with the server,\n * - The state of the subscription, in terms of its connectedness, and\n * - The set of callbacks to call when the server publishes notifications\n *\n * This record gets indexed by `SubscriptionConfigHash` and is used to\n * set up subscriptions, fan out notifications, and track subscription state.\n */\n\n/**\n * @internal\n */\n\n/**\n * Extra contextual information for RPC responses\n */\n\n/**\n * Options for sending transactions\n */\n\n/**\n * Options for confirming transactions\n */\n\n/**\n * Options for getConfirmedSignaturesForAddress2\n */\n\n/**\n * Options for getSignaturesForAddress\n */\n\n/**\n * RPC Response with extra contextual information\n */\n\n/**\n * A strategy for confirming transactions that uses the last valid\n * block height for a given blockhash to check for transaction expiration.\n */\n\n/**\n * A strategy for confirming durable nonce transactions.\n */\n\n/**\n * Properties shared by all transaction confirmation strategies\n */\n\n/**\n * This type represents all transaction confirmation strategies\n */\n\n/* @internal */\nfunction assertEndpointUrl(putativeUrl) {\n if (/^https?:/.test(putativeUrl) === false) {\n throw new TypeError('Endpoint URL must start with `http:` or `https:`.');\n }\n return putativeUrl;\n}\n\n/** @internal */\nfunction extractCommitmentFromConfig(commitmentOrConfig) {\n let commitment;\n let config;\n if (typeof commitmentOrConfig === 'string') {\n commitment = commitmentOrConfig;\n } else if (commitmentOrConfig) {\n const {\n commitment: specifiedCommitment,\n ...specifiedConfig\n } = commitmentOrConfig;\n commitment = specifiedCommitment;\n config = specifiedConfig;\n }\n return {\n commitment,\n config\n };\n}\n\n/**\n * @internal\n */\nfunction createRpcResult(result) {\n return union([type({\n jsonrpc: literal('2.0'),\n id: string(),\n result\n }), type({\n jsonrpc: literal('2.0'),\n id: string(),\n error: type({\n code: unknown(),\n message: string(),\n data: optional(any())\n })\n })]);\n}\nconst UnknownRpcResult = createRpcResult(unknown());\n\n/**\n * @internal\n */\nfunction jsonRpcResult(schema) {\n return coerce(createRpcResult(schema), UnknownRpcResult, value => {\n if ('error' in value) {\n return value;\n } else {\n return {\n ...value,\n result: create(value.result, schema)\n };\n }\n });\n}\n\n/**\n * @internal\n */\nfunction jsonRpcResultAndContext(value) {\n return jsonRpcResult(type({\n context: type({\n slot: number()\n }),\n value\n }));\n}\n\n/**\n * @internal\n */\nfunction notificationResultAndContext(value) {\n return type({\n context: type({\n slot: number()\n }),\n value\n });\n}\n\n/**\n * @internal\n */\nfunction versionedMessageFromResponse(version, response) {\n if (version === 0) {\n return new MessageV0({\n header: response.header,\n staticAccountKeys: response.accountKeys.map(accountKey => new PublicKey(accountKey)),\n recentBlockhash: response.recentBlockhash,\n compiledInstructions: response.instructions.map(ix => ({\n programIdIndex: ix.programIdIndex,\n accountKeyIndexes: ix.accounts,\n data: bs58.decode(ix.data)\n })),\n addressTableLookups: response.addressTableLookups\n });\n } else {\n return new Message(response);\n }\n}\n\n/**\n * The level of commitment desired when querying state\n *
\n *   'processed': Query the most recent block which has reached 1 confirmation by the connected node\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\n\n// Deprecated as of v1.5.5\n/**\n * A subset of Commitment levels, which are at least optimistically confirmed\n *
\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\n/**\n * Filter for largest accounts query\n *
\n *   'circulating':    Return the largest accounts that are part of the circulating supply\n *   'nonCirculating': Return the largest accounts that are not part of the circulating supply\n * 
\n */\n/**\n * Configuration object for changing `getAccountInfo` query behavior\n */\n/**\n * Configuration object for changing `getBalance` query behavior\n */\n/**\n * Configuration object for changing `getBlock` query behavior\n */\n/**\n * Configuration object for changing `getBlock` query behavior\n */\n/**\n * Configuration object for changing `getStakeMinimumDelegation` query behavior\n */\n/**\n * Configuration object for changing `getBlockHeight` query behavior\n */\n/**\n * Configuration object for changing `getEpochInfo` query behavior\n */\n/**\n * Configuration object for changing `getInflationReward` query behavior\n */\n/**\n * Configuration object for changing `getLatestBlockhash` query behavior\n */\n/**\n * Configuration object for changing `isBlockhashValid` query behavior\n */\n/**\n * Configuration object for changing `getSlot` query behavior\n */\n/**\n * Configuration object for changing `getSlotLeader` query behavior\n */\n/**\n * Configuration object for changing `getTransaction` query behavior\n */\n/**\n * Configuration object for changing `getTransaction` query behavior\n */\n/**\n * Configuration object for changing `getLargestAccounts` query behavior\n */\n/**\n * Configuration object for changing `getSupply` request behavior\n */\n/**\n * Configuration object for changing query behavior\n */\n/**\n * Information describing a cluster node\n */\n/**\n * Information describing a vote account\n */\n/**\n * A collection of cluster vote accounts\n */\n/**\n * Network Inflation\n * (see https://docs.solana.com/implemented-proposals/ed_overview)\n */\nconst GetInflationGovernorResult = type({\n foundation: number(),\n foundationTerm: number(),\n initial: number(),\n taper: number(),\n terminal: number()\n});\n\n/**\n * The inflation reward for an epoch\n */\n\n/**\n * Expected JSON RPC response for the \"getInflationReward\" message\n */\nconst GetInflationRewardResult = jsonRpcResult(array(nullable(type({\n epoch: number(),\n effectiveSlot: number(),\n amount: number(),\n postBalance: number(),\n commission: optional(nullable(number()))\n}))));\n\n/**\n * Configuration object for changing `getRecentPrioritizationFees` query behavior\n */\n\n/**\n * Expected JSON RPC response for the \"getRecentPrioritizationFees\" message\n */\nconst GetRecentPrioritizationFeesResult = array(type({\n slot: number(),\n prioritizationFee: number()\n}));\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\nconst GetInflationRateResult = type({\n total: number(),\n validator: number(),\n foundation: number(),\n epoch: number()\n});\n\n/**\n * Information about the current epoch\n */\n\nconst GetEpochInfoResult = type({\n epoch: number(),\n slotIndex: number(),\n slotsInEpoch: number(),\n absoluteSlot: number(),\n blockHeight: optional(number()),\n transactionCount: optional(number())\n});\nconst GetEpochScheduleResult = type({\n slotsPerEpoch: number(),\n leaderScheduleSlotOffset: number(),\n warmup: boolean(),\n firstNormalEpoch: number(),\n firstNormalSlot: number()\n});\n\n/**\n * Leader schedule\n * (see https://docs.solana.com/terminology#leader-schedule)\n */\n\nconst GetLeaderScheduleResult = record(string(), array(number()));\n\n/**\n * Transaction error or null\n */\nconst TransactionErrorResult = nullable(union([type({}), string()]));\n\n/**\n * Signature status for a transaction\n */\nconst SignatureStatusResult = type({\n err: TransactionErrorResult\n});\n\n/**\n * Transaction signature received notification\n */\nconst SignatureReceivedResult = literal('receivedSignature');\n\n/**\n * Version info for a node\n */\n\nconst VersionResult = type({\n 'solana-core': string(),\n 'feature-set': optional(number())\n});\nconst SimulatedTransactionResponseStruct = jsonRpcResultAndContext(type({\n err: nullable(union([type({}), string()])),\n logs: nullable(array(string())),\n accounts: optional(nullable(array(nullable(type({\n executable: boolean(),\n owner: string(),\n lamports: number(),\n data: array(string()),\n rentEpoch: optional(number())\n }))))),\n unitsConsumed: optional(number()),\n returnData: optional(nullable(type({\n programId: string(),\n data: tuple([string(), literal('base64')])\n })))\n}));\n\n/**\n * Metadata for a parsed confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link ParsedTransactionMeta} instead.\n */\n\n/**\n * Collection of addresses loaded by a transaction using address table lookups\n */\n\n/**\n * Metadata for a parsed transaction on the ledger\n */\n\n/**\n * Metadata for a confirmed transaction on the ledger\n */\n\n/**\n * A processed transaction from the RPC API\n */\n\n/**\n * A processed transaction from the RPC API\n */\n\n/**\n * A processed transaction message from the RPC API\n */\n\n/**\n * A confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * A partially decoded transaction instruction\n */\n\n/**\n * A parsed transaction message account\n */\n\n/**\n * A parsed transaction instruction\n */\n\n/**\n * A parsed address table lookup\n */\n\n/**\n * A parsed transaction message\n */\n\n/**\n * A parsed transaction\n */\n\n/**\n * A parsed and confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link ParsedTransactionWithMeta} instead.\n */\n\n/**\n * A parsed transaction on the ledger with meta\n */\n\n/**\n * A processed block fetched from the RPC API\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `accounts`\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `none`\n */\n\n/**\n * A block with parsed transactions\n */\n\n/**\n * A block with parsed transactions where the `transactionDetails` mode is `accounts`\n */\n\n/**\n * A block with parsed transactions where the `transactionDetails` mode is `none`\n */\n\n/**\n * A processed block fetched from the RPC API\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `accounts`\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `none`\n */\n\n/**\n * A confirmed block on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * A Block on the ledger with signatures only\n */\n\n/**\n * recent block production information\n */\n\n/**\n * Expected JSON RPC response for the \"getBlockProduction\" message\n */\nconst BlockProductionResponseStruct = jsonRpcResultAndContext(type({\n byIdentity: record(string(), array(number())),\n range: type({\n firstSlot: number(),\n lastSlot: number()\n })\n}));\n\n/**\n * A performance sample\n */\n\nfunction createRpcClient(url, httpHeaders, customFetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent) {\n const fetch = customFetch ? customFetch : fetchImpl;\n let agent;\n {\n if (httpAgent != null) {\n console.warn('You have supplied an `httpAgent` when creating a `Connection` in a browser environment.' + 'It has been ignored; `httpAgent` is only used in Node environments.');\n }\n }\n let fetchWithMiddleware;\n if (fetchMiddleware) {\n fetchWithMiddleware = async (info, init) => {\n const modifiedFetchArgs = await new Promise((resolve, reject) => {\n try {\n fetchMiddleware(info, init, (modifiedInfo, modifiedInit) => resolve([modifiedInfo, modifiedInit]));\n } catch (error) {\n reject(error);\n }\n });\n return await fetch(...modifiedFetchArgs);\n };\n }\n const clientBrowser = new RpcClient(async (request, callback) => {\n const options = {\n method: 'POST',\n body: request,\n agent,\n headers: Object.assign({\n 'Content-Type': 'application/json'\n }, httpHeaders || {}, COMMON_HTTP_HEADERS)\n };\n try {\n let too_many_requests_retries = 5;\n let res;\n let waitTime = 500;\n for (;;) {\n if (fetchWithMiddleware) {\n res = await fetchWithMiddleware(url, options);\n } else {\n res = await fetch(url, options);\n }\n if (res.status !== 429 /* Too many requests */) {\n break;\n }\n if (disableRetryOnRateLimit === true) {\n break;\n }\n too_many_requests_retries -= 1;\n if (too_many_requests_retries === 0) {\n break;\n }\n console.log(`Server responded with ${res.status} ${res.statusText}. Retrying after ${waitTime}ms delay...`);\n await sleep(waitTime);\n waitTime *= 2;\n }\n const text = await res.text();\n if (res.ok) {\n callback(null, text);\n } else {\n callback(new Error(`${res.status} ${res.statusText}: ${text}`));\n }\n } catch (err) {\n if (err instanceof Error) callback(err);\n }\n }, {});\n return clientBrowser;\n}\nfunction createRpcRequest(client) {\n return (method, args) => {\n return new Promise((resolve, reject) => {\n client.request(method, args, (err, response) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(response);\n });\n });\n };\n}\nfunction createRpcBatchRequest(client) {\n return requests => {\n return new Promise((resolve, reject) => {\n // Do nothing if requests is empty\n if (requests.length === 0) resolve([]);\n const batch = requests.map(params => {\n return client.request(params.methodName, params.args);\n });\n client.request(batch, (err, response) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(response);\n });\n });\n };\n}\n\n/**\n * Expected JSON RPC response for the \"getInflationGovernor\" message\n */\nconst GetInflationGovernorRpcResult = jsonRpcResult(GetInflationGovernorResult);\n\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\nconst GetInflationRateRpcResult = jsonRpcResult(GetInflationRateResult);\n\n/**\n * Expected JSON RPC response for the \"getRecentPrioritizationFees\" message\n */\nconst GetRecentPrioritizationFeesRpcResult = jsonRpcResult(GetRecentPrioritizationFeesResult);\n\n/**\n * Expected JSON RPC response for the \"getEpochInfo\" message\n */\nconst GetEpochInfoRpcResult = jsonRpcResult(GetEpochInfoResult);\n\n/**\n * Expected JSON RPC response for the \"getEpochSchedule\" message\n */\nconst GetEpochScheduleRpcResult = jsonRpcResult(GetEpochScheduleResult);\n\n/**\n * Expected JSON RPC response for the \"getLeaderSchedule\" message\n */\nconst GetLeaderScheduleRpcResult = jsonRpcResult(GetLeaderScheduleResult);\n\n/**\n * Expected JSON RPC response for the \"minimumLedgerSlot\" and \"getFirstAvailableBlock\" messages\n */\nconst SlotRpcResult = jsonRpcResult(number());\n\n/**\n * Supply\n */\n\n/**\n * Expected JSON RPC response for the \"getSupply\" message\n */\nconst GetSupplyRpcResult = jsonRpcResultAndContext(type({\n total: number(),\n circulating: number(),\n nonCirculating: number(),\n nonCirculatingAccounts: array(PublicKeyFromString)\n}));\n\n/**\n * Token amount object which returns a token amount in different formats\n * for various client use cases.\n */\n\n/**\n * Expected JSON RPC structure for token amounts\n */\nconst TokenAmountResult = type({\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string())\n});\n\n/**\n * Token address and balance.\n */\n\n/**\n * Expected JSON RPC response for the \"getTokenLargestAccounts\" message\n */\nconst GetTokenLargestAccountsResult = jsonRpcResultAndContext(array(type({\n address: PublicKeyFromString,\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string())\n})));\n\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message\n */\nconst GetTokenAccountsByOwner = jsonRpcResultAndContext(array(type({\n pubkey: PublicKeyFromString,\n account: type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number()\n })\n})));\nconst ParsedAccountDataResult = type({\n program: string(),\n parsed: unknown(),\n space: number()\n});\n\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message with parsed data\n */\nconst GetParsedTokenAccountsByOwner = jsonRpcResultAndContext(array(type({\n pubkey: PublicKeyFromString,\n account: type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedAccountDataResult,\n rentEpoch: number()\n })\n})));\n\n/**\n * Pair of an account address and its balance\n */\n\n/**\n * Expected JSON RPC response for the \"getLargestAccounts\" message\n */\nconst GetLargestAccountsRpcResult = jsonRpcResultAndContext(array(type({\n lamports: number(),\n address: PublicKeyFromString\n})));\n\n/**\n * @internal\n */\nconst AccountInfoResult = type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number()\n});\n\n/**\n * @internal\n */\nconst KeyedAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult\n});\nconst ParsedOrRawAccountData = coerce(union([instance(Buffer), ParsedAccountDataResult]), union([RawAccountDataResult, ParsedAccountDataResult]), value => {\n if (Array.isArray(value)) {\n return create(value, BufferFromRawAccountData);\n } else {\n return value;\n }\n});\n\n/**\n * @internal\n */\nconst ParsedAccountInfoResult = type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedOrRawAccountData,\n rentEpoch: number()\n});\nconst KeyedParsedAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: ParsedAccountInfoResult\n});\n\n/**\n * @internal\n */\nconst StakeActivationResult = type({\n state: union([literal('active'), literal('inactive'), literal('activating'), literal('deactivating')]),\n active: number(),\n inactive: number()\n});\n\n/**\n * Expected JSON RPC response for the \"getConfirmedSignaturesForAddress2\" message\n */\n\nconst GetConfirmedSignaturesForAddress2RpcResult = jsonRpcResult(array(type({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number()))\n})));\n\n/**\n * Expected JSON RPC response for the \"getSignaturesForAddress\" message\n */\nconst GetSignaturesForAddressRpcResult = jsonRpcResult(array(type({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number()))\n})));\n\n/***\n * Expected JSON RPC response for the \"accountNotification\" message\n */\nconst AccountNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(AccountInfoResult)\n});\n\n/**\n * @internal\n */\nconst ProgramAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult\n});\n\n/***\n * Expected JSON RPC response for the \"programNotification\" message\n */\nconst ProgramAccountNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(ProgramAccountInfoResult)\n});\n\n/**\n * @internal\n */\nconst SlotInfoResult = type({\n parent: number(),\n slot: number(),\n root: number()\n});\n\n/**\n * Expected JSON RPC response for the \"slotNotification\" message\n */\nconst SlotNotificationResult = type({\n subscription: number(),\n result: SlotInfoResult\n});\n\n/**\n * Slot updates which can be used for tracking the live progress of a cluster.\n * - `\"firstShredReceived\"`: connected node received the first shred of a block.\n * Indicates that a new block that is being produced.\n * - `\"completed\"`: connected node has received all shreds of a block. Indicates\n * a block was recently produced.\n * - `\"optimisticConfirmation\"`: block was optimistically confirmed by the\n * cluster. It is not guaranteed that an optimistic confirmation notification\n * will be sent for every finalized blocks.\n * - `\"root\"`: the connected node rooted this block.\n * - `\"createdBank\"`: the connected node has started validating this block.\n * - `\"frozen\"`: the connected node has validated this block.\n * - `\"dead\"`: the connected node failed to validate this block.\n */\n\n/**\n * @internal\n */\nconst SlotUpdateResult = union([type({\n type: union([literal('firstShredReceived'), literal('completed'), literal('optimisticConfirmation'), literal('root')]),\n slot: number(),\n timestamp: number()\n}), type({\n type: literal('createdBank'),\n parent: number(),\n slot: number(),\n timestamp: number()\n}), type({\n type: literal('frozen'),\n slot: number(),\n timestamp: number(),\n stats: type({\n numTransactionEntries: number(),\n numSuccessfulTransactions: number(),\n numFailedTransactions: number(),\n maxTransactionsPerEntry: number()\n })\n}), type({\n type: literal('dead'),\n slot: number(),\n timestamp: number(),\n err: string()\n})]);\n\n/**\n * Expected JSON RPC response for the \"slotsUpdatesNotification\" message\n */\nconst SlotUpdateNotificationResult = type({\n subscription: number(),\n result: SlotUpdateResult\n});\n\n/**\n * Expected JSON RPC response for the \"signatureNotification\" message\n */\nconst SignatureNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(union([SignatureStatusResult, SignatureReceivedResult]))\n});\n\n/**\n * Expected JSON RPC response for the \"rootNotification\" message\n */\nconst RootNotificationResult = type({\n subscription: number(),\n result: number()\n});\nconst ContactInfoResult = type({\n pubkey: string(),\n gossip: nullable(string()),\n tpu: nullable(string()),\n rpc: nullable(string()),\n version: nullable(string())\n});\nconst VoteAccountInfoResult = type({\n votePubkey: string(),\n nodePubkey: string(),\n activatedStake: number(),\n epochVoteAccount: boolean(),\n epochCredits: array(tuple([number(), number(), number()])),\n commission: number(),\n lastVote: number(),\n rootSlot: nullable(number())\n});\n\n/**\n * Expected JSON RPC response for the \"getVoteAccounts\" message\n */\nconst GetVoteAccounts = jsonRpcResult(type({\n current: array(VoteAccountInfoResult),\n delinquent: array(VoteAccountInfoResult)\n}));\nconst ConfirmationStatus = union([literal('processed'), literal('confirmed'), literal('finalized')]);\nconst SignatureStatusResponse = type({\n slot: number(),\n confirmations: nullable(number()),\n err: TransactionErrorResult,\n confirmationStatus: optional(ConfirmationStatus)\n});\n\n/**\n * Expected JSON RPC response for the \"getSignatureStatuses\" message\n */\nconst GetSignatureStatusesRpcResult = jsonRpcResultAndContext(array(nullable(SignatureStatusResponse)));\n\n/**\n * Expected JSON RPC response for the \"getMinimumBalanceForRentExemption\" message\n */\nconst GetMinimumBalanceForRentExemptionRpcResult = jsonRpcResult(number());\nconst AddressTableLookupStruct = type({\n accountKey: PublicKeyFromString,\n writableIndexes: array(number()),\n readonlyIndexes: array(number())\n});\nconst ConfirmedTransactionResult = type({\n signatures: array(string()),\n message: type({\n accountKeys: array(string()),\n header: type({\n numRequiredSignatures: number(),\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number()\n }),\n instructions: array(type({\n accounts: array(number()),\n data: string(),\n programIdIndex: number()\n })),\n recentBlockhash: string(),\n addressTableLookups: optional(array(AddressTableLookupStruct))\n })\n});\nconst AnnotatedAccountKey = type({\n pubkey: PublicKeyFromString,\n signer: boolean(),\n writable: boolean(),\n source: optional(union([literal('transaction'), literal('lookupTable')]))\n});\nconst ConfirmedTransactionAccountsModeResult = type({\n accountKeys: array(AnnotatedAccountKey),\n signatures: array(string())\n});\nconst ParsedInstructionResult = type({\n parsed: unknown(),\n program: string(),\n programId: PublicKeyFromString\n});\nconst RawInstructionResult = type({\n accounts: array(PublicKeyFromString),\n data: string(),\n programId: PublicKeyFromString\n});\nconst InstructionResult = union([RawInstructionResult, ParsedInstructionResult]);\nconst UnknownInstructionResult = union([type({\n parsed: unknown(),\n program: string(),\n programId: string()\n}), type({\n accounts: array(string()),\n data: string(),\n programId: string()\n})]);\nconst ParsedOrRawInstruction = coerce(InstructionResult, UnknownInstructionResult, value => {\n if ('accounts' in value) {\n return create(value, RawInstructionResult);\n } else {\n return create(value, ParsedInstructionResult);\n }\n});\n\n/**\n * @internal\n */\nconst ParsedConfirmedTransactionResult = type({\n signatures: array(string()),\n message: type({\n accountKeys: array(AnnotatedAccountKey),\n instructions: array(ParsedOrRawInstruction),\n recentBlockhash: string(),\n addressTableLookups: optional(nullable(array(AddressTableLookupStruct)))\n })\n});\nconst TokenBalanceResult = type({\n accountIndex: number(),\n mint: string(),\n owner: optional(string()),\n uiTokenAmount: TokenAmountResult\n});\nconst LoadedAddressesResult = type({\n writable: array(PublicKeyFromString),\n readonly: array(PublicKeyFromString)\n});\n\n/**\n * @internal\n */\nconst ConfirmedTransactionMetaResult = type({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(nullable(array(type({\n index: number(),\n instructions: array(type({\n accounts: array(number()),\n data: string(),\n programIdIndex: number()\n }))\n })))),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n loadedAddresses: optional(LoadedAddressesResult),\n computeUnitsConsumed: optional(number())\n});\n\n/**\n * @internal\n */\nconst ParsedConfirmedTransactionMetaResult = type({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(nullable(array(type({\n index: number(),\n instructions: array(ParsedOrRawInstruction)\n })))),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n loadedAddresses: optional(LoadedAddressesResult),\n computeUnitsConsumed: optional(number())\n});\nconst TransactionVersionStruct = union([literal(0), literal('legacy')]);\n\n/** @internal */\nconst RewardsResult = type({\n pubkey: string(),\n lamports: number(),\n postBalance: nullable(number()),\n rewardType: nullable(string()),\n commission: optional(nullable(number()))\n});\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\nconst GetBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\nconst GetNoneModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\nconst GetAccountsModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionAccountsModeResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message\n */\nconst GetParsedBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\nconst GetParsedAccountsModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionAccountsModeResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\nconst GetParsedNoneModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n\n/**\n * Expected JSON RPC response for the \"getConfirmedBlock\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetBlockRpcResult} instead.\n */\nconst GetConfirmedBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number())\n})));\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\nconst GetBlockSignaturesRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n signatures: array(string()),\n blockTime: nullable(number())\n})));\n\n/**\n * Expected JSON RPC response for the \"getTransaction\" message\n */\nconst GetTransactionRpcResult = jsonRpcResult(nullable(type({\n slot: number(),\n meta: nullable(ConfirmedTransactionMetaResult),\n blockTime: optional(nullable(number())),\n transaction: ConfirmedTransactionResult,\n version: optional(TransactionVersionStruct)\n})));\n\n/**\n * Expected parsed JSON RPC response for the \"getTransaction\" message\n */\nconst GetParsedTransactionRpcResult = jsonRpcResult(nullable(type({\n slot: number(),\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n blockTime: optional(nullable(number())),\n version: optional(TransactionVersionStruct)\n})));\n\n/**\n * Expected JSON RPC response for the \"getRecentBlockhash\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetLatestBlockhashRpcResult} instead.\n */\nconst GetRecentBlockhashAndContextRpcResult = jsonRpcResultAndContext(type({\n blockhash: string(),\n feeCalculator: type({\n lamportsPerSignature: number()\n })\n}));\n\n/**\n * Expected JSON RPC response for the \"getLatestBlockhash\" message\n */\nconst GetLatestBlockhashRpcResult = jsonRpcResultAndContext(type({\n blockhash: string(),\n lastValidBlockHeight: number()\n}));\n\n/**\n * Expected JSON RPC response for the \"isBlockhashValid\" message\n */\nconst IsBlockhashValidRpcResult = jsonRpcResultAndContext(boolean());\nconst PerfSampleResult = type({\n slot: number(),\n numTransactions: number(),\n numSlots: number(),\n samplePeriodSecs: number()\n});\n\n/*\n * Expected JSON RPC response for \"getRecentPerformanceSamples\" message\n */\nconst GetRecentPerformanceSamplesRpcResult = jsonRpcResult(array(PerfSampleResult));\n\n/**\n * Expected JSON RPC response for the \"getFeeCalculatorForBlockhash\" message\n */\nconst GetFeeCalculatorRpcResult = jsonRpcResultAndContext(nullable(type({\n feeCalculator: type({\n lamportsPerSignature: number()\n })\n})));\n\n/**\n * Expected JSON RPC response for the \"requestAirdrop\" message\n */\nconst RequestAirdropRpcResult = jsonRpcResult(string());\n\n/**\n * Expected JSON RPC response for the \"sendTransaction\" message\n */\nconst SendTransactionRpcResult = jsonRpcResult(string());\n\n/**\n * Information about the latest slot being processed by a node\n */\n\n/**\n * Parsed account data\n */\n\n/**\n * Stake Activation data\n */\n\n/**\n * Data slice argument for getProgramAccounts\n */\n\n/**\n * Memory comparison filter for getProgramAccounts\n */\n\n/**\n * Data size comparison filter for getProgramAccounts\n */\n\n/**\n * A filter object for getProgramAccounts\n */\n\n/**\n * Configuration object for getProgramAccounts requests\n */\n\n/**\n * Configuration object for getParsedProgramAccounts\n */\n\n/**\n * Configuration object for getMultipleAccounts\n */\n\n/**\n * Configuration object for `getStakeActivation`\n */\n\n/**\n * Configuration object for `getStakeActivation`\n */\n\n/**\n * Configuration object for `getStakeActivation`\n */\n\n/**\n * Configuration object for `getNonce`\n */\n\n/**\n * Configuration object for `getNonceAndContext`\n */\n\n/**\n * Information describing an account\n */\n\n/**\n * Account information identified by pubkey\n */\n\n/**\n * Callback function for account change notifications\n */\n\n/**\n * Callback function for program account change notifications\n */\n\n/**\n * Callback function for slot change notifications\n */\n\n/**\n * Callback function for slot update notifications\n */\n\n/**\n * Callback function for signature status notifications\n */\n\n/**\n * Signature status notification with transaction result\n */\n\n/**\n * Signature received notification\n */\n\n/**\n * Callback function for signature notifications\n */\n\n/**\n * Signature subscription options\n */\n\n/**\n * Callback function for root change notifications\n */\n\n/**\n * @internal\n */\nconst LogsResult = type({\n err: TransactionErrorResult,\n logs: array(string()),\n signature: string()\n});\n\n/**\n * Logs result.\n */\n\n/**\n * Expected JSON RPC response for the \"logsNotification\" message.\n */\nconst LogsNotificationResult = type({\n result: notificationResultAndContext(LogsResult),\n subscription: number()\n});\n\n/**\n * Filter for log subscriptions.\n */\n\n/**\n * Callback function for log notifications.\n */\n\n/**\n * Signature result\n */\n\n/**\n * Transaction error\n */\n\n/**\n * Transaction confirmation status\n *
\n *   'processed': Transaction landed in a block which has reached 1 confirmation by the connected node\n *   'confirmed': Transaction landed in a block which has reached 1 confirmation by the cluster\n *   'finalized': Transaction landed in a block which has been finalized by the cluster\n * 
\n */\n\n/**\n * Signature status\n */\n\n/**\n * A confirmed signature with its status\n */\n\n/**\n * An object defining headers to be passed to the RPC server\n */\n\n/**\n * The type of the JavaScript `fetch()` API\n */\n\n/**\n * A callback used to augment the outgoing HTTP request\n */\n\n/**\n * Configuration for instantiating a Connection\n */\n\n/** @internal */\nconst COMMON_HTTP_HEADERS = {\n 'solana-client': `js/${\"0.0.0-development\" }`\n};\n\n/**\n * A connection to a fullnode JSON RPC endpoint\n */\nclass Connection {\n /**\n * Establish a JSON RPC connection\n *\n * @param endpoint URL to the fullnode JSON RPC endpoint\n * @param commitmentOrConfig optional default commitment level or optional ConnectionConfig configuration object\n */\n constructor(endpoint, _commitmentOrConfig) {\n /** @internal */\n this._commitment = void 0;\n /** @internal */\n this._confirmTransactionInitialTimeout = void 0;\n /** @internal */\n this._rpcEndpoint = void 0;\n /** @internal */\n this._rpcWsEndpoint = void 0;\n /** @internal */\n this._rpcClient = void 0;\n /** @internal */\n this._rpcRequest = void 0;\n /** @internal */\n this._rpcBatchRequest = void 0;\n /** @internal */\n this._rpcWebSocket = void 0;\n /** @internal */\n this._rpcWebSocketConnected = false;\n /** @internal */\n this._rpcWebSocketHeartbeat = null;\n /** @internal */\n this._rpcWebSocketIdleTimeout = null;\n /** @internal\n * A number that we increment every time an active connection closes.\n * Used to determine whether the same socket connection that was open\n * when an async operation started is the same one that's active when\n * its continuation fires.\n *\n */\n this._rpcWebSocketGeneration = 0;\n /** @internal */\n this._disableBlockhashCaching = false;\n /** @internal */\n this._pollingBlockhash = false;\n /** @internal */\n this._blockhashInfo = {\n latestBlockhash: null,\n lastFetch: 0,\n transactionSignatures: [],\n simulatedSignatures: []\n };\n /** @internal */\n this._nextClientSubscriptionId = 0;\n /** @internal */\n this._subscriptionDisposeFunctionsByClientSubscriptionId = {};\n /** @internal */\n this._subscriptionHashByClientSubscriptionId = {};\n /** @internal */\n this._subscriptionStateChangeCallbacksByHash = {};\n /** @internal */\n this._subscriptionCallbacksByServerSubscriptionId = {};\n /** @internal */\n this._subscriptionsByHash = {};\n /**\n * Special case.\n * After a signature is processed, RPCs automatically dispose of the\n * subscription on the server side. We need to track which of these\n * subscriptions have been disposed in such a way, so that we know\n * whether the client is dealing with a not-yet-processed signature\n * (in which case we must tear down the server subscription) or an\n * already-processed signature (in which case the client can simply\n * clear out the subscription locally without telling the server).\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n /** @internal */\n this._subscriptionsAutoDisposedByRpc = new Set();\n /*\n * Returns the current block height of the node\n */\n this.getBlockHeight = (() => {\n const requestPromises = {};\n return async commitmentOrConfig => {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([], commitment, undefined /* encoding */, config);\n const requestHash = fastStableStringify$1(args);\n requestPromises[requestHash] = requestPromises[requestHash] ?? (async () => {\n try {\n const unsafeRes = await this._rpcRequest('getBlockHeight', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get block height information');\n }\n return res.result;\n } finally {\n delete requestPromises[requestHash];\n }\n })();\n return await requestPromises[requestHash];\n };\n })();\n let wsEndpoint;\n let httpHeaders;\n let fetch;\n let fetchMiddleware;\n let disableRetryOnRateLimit;\n let httpAgent;\n if (_commitmentOrConfig && typeof _commitmentOrConfig === 'string') {\n this._commitment = _commitmentOrConfig;\n } else if (_commitmentOrConfig) {\n this._commitment = _commitmentOrConfig.commitment;\n this._confirmTransactionInitialTimeout = _commitmentOrConfig.confirmTransactionInitialTimeout;\n wsEndpoint = _commitmentOrConfig.wsEndpoint;\n httpHeaders = _commitmentOrConfig.httpHeaders;\n fetch = _commitmentOrConfig.fetch;\n fetchMiddleware = _commitmentOrConfig.fetchMiddleware;\n disableRetryOnRateLimit = _commitmentOrConfig.disableRetryOnRateLimit;\n httpAgent = _commitmentOrConfig.httpAgent;\n }\n this._rpcEndpoint = assertEndpointUrl(endpoint);\n this._rpcWsEndpoint = wsEndpoint || makeWebsocketUrl(endpoint);\n this._rpcClient = createRpcClient(endpoint, httpHeaders, fetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent);\n this._rpcRequest = createRpcRequest(this._rpcClient);\n this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);\n this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {\n autoconnect: false,\n max_reconnects: Infinity\n });\n this._rpcWebSocket.on('open', this._wsOnOpen.bind(this));\n this._rpcWebSocket.on('error', this._wsOnError.bind(this));\n this._rpcWebSocket.on('close', this._wsOnClose.bind(this));\n this._rpcWebSocket.on('accountNotification', this._wsOnAccountNotification.bind(this));\n this._rpcWebSocket.on('programNotification', this._wsOnProgramAccountNotification.bind(this));\n this._rpcWebSocket.on('slotNotification', this._wsOnSlotNotification.bind(this));\n this._rpcWebSocket.on('slotsUpdatesNotification', this._wsOnSlotUpdatesNotification.bind(this));\n this._rpcWebSocket.on('signatureNotification', this._wsOnSignatureNotification.bind(this));\n this._rpcWebSocket.on('rootNotification', this._wsOnRootNotification.bind(this));\n this._rpcWebSocket.on('logsNotification', this._wsOnLogsNotification.bind(this));\n }\n\n /**\n * The default commitment used for requests\n */\n get commitment() {\n return this._commitment;\n }\n\n /**\n * The RPC endpoint\n */\n get rpcEndpoint() {\n return this._rpcEndpoint;\n }\n\n /**\n * Fetch the balance for the specified public key, return with context\n */\n async getBalanceAndContext(publicKey, commitmentOrConfig) {\n /** @internal */\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([publicKey.toBase58()], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getBalance', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get balance for ${publicKey.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch the balance for the specified public key\n */\n async getBalance(publicKey, commitmentOrConfig) {\n return await this.getBalanceAndContext(publicKey, commitmentOrConfig).then(x => x.value).catch(e => {\n throw new Error('failed to get balance of account ' + publicKey.toBase58() + ': ' + e);\n });\n }\n\n /**\n * Fetch the estimated production time of a block\n */\n async getBlockTime(slot) {\n const unsafeRes = await this._rpcRequest('getBlockTime', [slot]);\n const res = create(unsafeRes, jsonRpcResult(nullable(number())));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get block time for slot ${slot}`);\n }\n return res.result;\n }\n\n /**\n * Fetch the lowest slot that the node has information about in its ledger.\n * This value may increase over time if the node is configured to purge older ledger data\n */\n async getMinimumLedgerSlot() {\n const unsafeRes = await this._rpcRequest('minimumLedgerSlot', []);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get minimum ledger slot');\n }\n return res.result;\n }\n\n /**\n * Fetch the slot of the lowest confirmed block that has not been purged from the ledger\n */\n async getFirstAvailableBlock() {\n const unsafeRes = await this._rpcRequest('getFirstAvailableBlock', []);\n const res = create(unsafeRes, SlotRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get first available block');\n }\n return res.result;\n }\n\n /**\n * Fetch information about the current supply\n */\n async getSupply(config) {\n let configArg = {};\n if (typeof config === 'string') {\n configArg = {\n commitment: config\n };\n } else if (config) {\n configArg = {\n ...config,\n commitment: config && config.commitment || this.commitment\n };\n } else {\n configArg = {\n commitment: this.commitment\n };\n }\n const unsafeRes = await this._rpcRequest('getSupply', [configArg]);\n const res = create(unsafeRes, GetSupplyRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get supply');\n }\n return res.result;\n }\n\n /**\n * Fetch the current supply of a token mint\n */\n async getTokenSupply(tokenMintAddress, commitment) {\n const args = this._buildArgs([tokenMintAddress.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getTokenSupply', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get token supply');\n }\n return res.result;\n }\n\n /**\n * Fetch the current balance of a token account\n */\n async getTokenAccountBalance(tokenAddress, commitment) {\n const args = this._buildArgs([tokenAddress.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getTokenAccountBalance', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get token account balance');\n }\n return res.result;\n }\n\n /**\n * Fetch all the token accounts owned by the specified account\n *\n * @return {Promise}\n */\n async getTokenAccountsByOwner(ownerAddress, filter, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n let _args = [ownerAddress.toBase58()];\n if ('mint' in filter) {\n _args.push({\n mint: filter.mint.toBase58()\n });\n } else {\n _args.push({\n programId: filter.programId.toBase58()\n });\n }\n const args = this._buildArgs(_args, commitment, 'base64', config);\n const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n const res = create(unsafeRes, GetTokenAccountsByOwner);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get token accounts owned by account ${ownerAddress.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch parsed token accounts owned by the specified account\n *\n * @return {Promise}>>>}\n */\n async getParsedTokenAccountsByOwner(ownerAddress, filter, commitment) {\n let _args = [ownerAddress.toBase58()];\n if ('mint' in filter) {\n _args.push({\n mint: filter.mint.toBase58()\n });\n } else {\n _args.push({\n programId: filter.programId.toBase58()\n });\n }\n const args = this._buildArgs(_args, commitment, 'jsonParsed');\n const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n const res = create(unsafeRes, GetParsedTokenAccountsByOwner);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get token accounts owned by account ${ownerAddress.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch the 20 largest accounts with their current balances\n */\n async getLargestAccounts(config) {\n const arg = {\n ...config,\n commitment: config && config.commitment || this.commitment\n };\n const args = arg.filter || arg.commitment ? [arg] : [];\n const unsafeRes = await this._rpcRequest('getLargestAccounts', args);\n const res = create(unsafeRes, GetLargestAccountsRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get largest accounts');\n }\n return res.result;\n }\n\n /**\n * Fetch the 20 largest token accounts with their current balances\n * for a given mint.\n */\n async getTokenLargestAccounts(mintAddress, commitment) {\n const args = this._buildArgs([mintAddress.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getTokenLargestAccounts', args);\n const res = create(unsafeRes, GetTokenLargestAccountsResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get token largest accounts');\n }\n return res.result;\n }\n\n /**\n * Fetch all the account info for the specified public key, return with context\n */\n async getAccountInfoAndContext(publicKey, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([publicKey.toBase58()], commitment, 'base64', config);\n const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(AccountInfoResult)));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info about account ${publicKey.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch parsed account info for the specified public key\n */\n async getParsedAccountInfo(publicKey, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([publicKey.toBase58()], commitment, 'jsonParsed', config);\n const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(ParsedAccountInfoResult)));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info about account ${publicKey.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch all the account info for the specified public key\n */\n async getAccountInfo(publicKey, commitmentOrConfig) {\n try {\n const res = await this.getAccountInfoAndContext(publicKey, commitmentOrConfig);\n return res.value;\n } catch (e) {\n throw new Error('failed to get info about account ' + publicKey.toBase58() + ': ' + e);\n }\n }\n\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n */\n async getMultipleParsedAccounts(publicKeys, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n const keys = publicKeys.map(key => key.toBase58());\n const args = this._buildArgs([keys], commitment, 'jsonParsed', config);\n const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(array(nullable(ParsedAccountInfoResult))));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info for accounts ${keys}`);\n }\n return res.result;\n }\n\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n */\n async getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const keys = publicKeys.map(key => key.toBase58());\n const args = this._buildArgs([keys], commitment, 'base64', config);\n const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(array(nullable(AccountInfoResult))));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info for accounts ${keys}`);\n }\n return res.result;\n }\n\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys\n */\n async getMultipleAccountsInfo(publicKeys, commitmentOrConfig) {\n const res = await this.getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig);\n return res.value;\n }\n\n /**\n * Returns epoch activation information for a stake account that has been delegated\n */\n async getStakeActivation(publicKey, commitmentOrConfig, epoch) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([publicKey.toBase58()], commitment, undefined /* encoding */, {\n ...config,\n epoch: epoch != null ? epoch : config?.epoch\n });\n const unsafeRes = await this._rpcRequest('getStakeActivation', args);\n const res = create(unsafeRes, jsonRpcResult(StakeActivationResult));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get Stake Activation ${publicKey.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n\n // eslint-disable-next-line no-dupe-class-members\n\n // eslint-disable-next-line no-dupe-class-members\n async getProgramAccounts(programId, configOrCommitment) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(configOrCommitment);\n const {\n encoding,\n ...configWithoutEncoding\n } = config || {};\n const args = this._buildArgs([programId.toBase58()], commitment, encoding || 'base64', configWithoutEncoding);\n const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n const baseSchema = array(KeyedAccountInfoResult);\n const res = configWithoutEncoding.withContext === true ? create(unsafeRes, jsonRpcResultAndContext(baseSchema)) : create(unsafeRes, jsonRpcResult(baseSchema));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get accounts owned by program ${programId.toBase58()}`);\n }\n return res.result;\n }\n\n /**\n * Fetch and parse all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n async getParsedProgramAccounts(programId, configOrCommitment) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(configOrCommitment);\n const args = this._buildArgs([programId.toBase58()], commitment, 'jsonParsed', config);\n const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n const res = create(unsafeRes, jsonRpcResult(array(KeyedParsedAccountInfoResult)));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get accounts owned by program ${programId.toBase58()}`);\n }\n return res.result;\n }\n\n /** @deprecated Instead, call `confirmTransaction` and pass in {@link TransactionConfirmationStrategy} */ // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n async confirmTransaction(strategy, commitment) {\n let rawSignature;\n if (typeof strategy == 'string') {\n rawSignature = strategy;\n } else {\n const config = strategy;\n if (config.abortSignal?.aborted) {\n return Promise.reject(config.abortSignal.reason);\n }\n rawSignature = config.signature;\n }\n let decodedSignature;\n try {\n decodedSignature = bs58.decode(rawSignature);\n } catch (err) {\n throw new Error('signature must be base58 encoded: ' + rawSignature);\n }\n assert(decodedSignature.length === 64, 'signature has invalid length');\n if (typeof strategy === 'string') {\n return await this.confirmTransactionUsingLegacyTimeoutStrategy({\n commitment: commitment || this.commitment,\n signature: rawSignature\n });\n } else if ('lastValidBlockHeight' in strategy) {\n return await this.confirmTransactionUsingBlockHeightExceedanceStrategy({\n commitment: commitment || this.commitment,\n strategy\n });\n } else {\n return await this.confirmTransactionUsingDurableNonceStrategy({\n commitment: commitment || this.commitment,\n strategy\n });\n }\n }\n getCancellationPromise(signal) {\n return new Promise((_, reject) => {\n if (signal == null) {\n return;\n }\n if (signal.aborted) {\n reject(signal.reason);\n } else {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n });\n }\n });\n }\n getTransactionConfirmationPromise({\n commitment,\n signature\n }) {\n let signatureSubscriptionId;\n let disposeSignatureSubscriptionStateChangeObserver;\n let done = false;\n const confirmationPromise = new Promise((resolve, reject) => {\n try {\n signatureSubscriptionId = this.onSignature(signature, (result, context) => {\n signatureSubscriptionId = undefined;\n const response = {\n context,\n value: result\n };\n resolve({\n __type: TransactionStatus.PROCESSED,\n response\n });\n }, commitment);\n const subscriptionSetupPromise = new Promise(resolveSubscriptionSetup => {\n if (signatureSubscriptionId == null) {\n resolveSubscriptionSetup();\n } else {\n disposeSignatureSubscriptionStateChangeObserver = this._onSubscriptionStateChange(signatureSubscriptionId, nextState => {\n if (nextState === 'subscribed') {\n resolveSubscriptionSetup();\n }\n });\n }\n });\n (async () => {\n await subscriptionSetupPromise;\n if (done) return;\n const response = await this.getSignatureStatus(signature);\n if (done) return;\n if (response == null) {\n return;\n }\n const {\n context,\n value\n } = response;\n if (value == null) {\n return;\n }\n if (value?.err) {\n reject(value.err);\n } else {\n switch (commitment) {\n case 'confirmed':\n case 'single':\n case 'singleGossip':\n {\n if (value.confirmationStatus === 'processed') {\n return;\n }\n break;\n }\n case 'finalized':\n case 'max':\n case 'root':\n {\n if (value.confirmationStatus === 'processed' || value.confirmationStatus === 'confirmed') {\n return;\n }\n break;\n }\n // exhaust enums to ensure full coverage\n case 'processed':\n case 'recent':\n }\n done = true;\n resolve({\n __type: TransactionStatus.PROCESSED,\n response: {\n context,\n value\n }\n });\n }\n })();\n } catch (err) {\n reject(err);\n }\n });\n const abortConfirmation = () => {\n if (disposeSignatureSubscriptionStateChangeObserver) {\n disposeSignatureSubscriptionStateChangeObserver();\n disposeSignatureSubscriptionStateChangeObserver = undefined;\n }\n if (signatureSubscriptionId != null) {\n this.removeSignatureListener(signatureSubscriptionId);\n signatureSubscriptionId = undefined;\n }\n };\n return {\n abortConfirmation,\n confirmationPromise\n };\n }\n async confirmTransactionUsingBlockHeightExceedanceStrategy({\n commitment,\n strategy: {\n abortSignal,\n lastValidBlockHeight,\n signature\n }\n }) {\n let done = false;\n const expiryPromise = new Promise(resolve => {\n const checkBlockHeight = async () => {\n try {\n const blockHeight = await this.getBlockHeight(commitment);\n return blockHeight;\n } catch (_e) {\n return -1;\n }\n };\n (async () => {\n let currentBlockHeight = await checkBlockHeight();\n if (done) return;\n while (currentBlockHeight <= lastValidBlockHeight) {\n await sleep(1000);\n if (done) return;\n currentBlockHeight = await checkBlockHeight();\n if (done) return;\n }\n resolve({\n __type: TransactionStatus.BLOCKHEIGHT_EXCEEDED\n });\n })();\n });\n const {\n abortConfirmation,\n confirmationPromise\n } = this.getTransactionConfirmationPromise({\n commitment,\n signature\n });\n const cancellationPromise = this.getCancellationPromise(abortSignal);\n let result;\n try {\n const outcome = await Promise.race([cancellationPromise, confirmationPromise, expiryPromise]);\n if (outcome.__type === TransactionStatus.PROCESSED) {\n result = outcome.response;\n } else {\n throw new TransactionExpiredBlockheightExceededError(signature);\n }\n } finally {\n done = true;\n abortConfirmation();\n }\n return result;\n }\n async confirmTransactionUsingDurableNonceStrategy({\n commitment,\n strategy: {\n abortSignal,\n minContextSlot,\n nonceAccountPubkey,\n nonceValue,\n signature\n }\n }) {\n let done = false;\n const expiryPromise = new Promise(resolve => {\n let currentNonceValue = nonceValue;\n let lastCheckedSlot = null;\n const getCurrentNonceValue = async () => {\n try {\n const {\n context,\n value: nonceAccount\n } = await this.getNonceAndContext(nonceAccountPubkey, {\n commitment,\n minContextSlot\n });\n lastCheckedSlot = context.slot;\n return nonceAccount?.nonce;\n } catch (e) {\n // If for whatever reason we can't reach/read the nonce\n // account, just keep using the last-known value.\n return currentNonceValue;\n }\n };\n (async () => {\n currentNonceValue = await getCurrentNonceValue();\n if (done) return;\n while (true // eslint-disable-line no-constant-condition\n ) {\n if (nonceValue !== currentNonceValue) {\n resolve({\n __type: TransactionStatus.NONCE_INVALID,\n slotInWhichNonceDidAdvance: lastCheckedSlot\n });\n return;\n }\n await sleep(2000);\n if (done) return;\n currentNonceValue = await getCurrentNonceValue();\n if (done) return;\n }\n })();\n });\n const {\n abortConfirmation,\n confirmationPromise\n } = this.getTransactionConfirmationPromise({\n commitment,\n signature\n });\n const cancellationPromise = this.getCancellationPromise(abortSignal);\n let result;\n try {\n const outcome = await Promise.race([cancellationPromise, confirmationPromise, expiryPromise]);\n if (outcome.__type === TransactionStatus.PROCESSED) {\n result = outcome.response;\n } else {\n // Double check that the transaction is indeed unconfirmed.\n let signatureStatus;\n while (true // eslint-disable-line no-constant-condition\n ) {\n const status = await this.getSignatureStatus(signature);\n if (status == null) {\n break;\n }\n if (status.context.slot < (outcome.slotInWhichNonceDidAdvance ?? minContextSlot)) {\n await sleep(400);\n continue;\n }\n signatureStatus = status;\n break;\n }\n if (signatureStatus?.value) {\n const commitmentForStatus = commitment || 'finalized';\n const {\n confirmationStatus\n } = signatureStatus.value;\n switch (commitmentForStatus) {\n case 'processed':\n case 'recent':\n if (confirmationStatus !== 'processed' && confirmationStatus !== 'confirmed' && confirmationStatus !== 'finalized') {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n break;\n case 'confirmed':\n case 'single':\n case 'singleGossip':\n if (confirmationStatus !== 'confirmed' && confirmationStatus !== 'finalized') {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n break;\n case 'finalized':\n case 'max':\n case 'root':\n if (confirmationStatus !== 'finalized') {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n break;\n default:\n // Exhaustive switch.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (_ => {})(commitmentForStatus);\n }\n result = {\n context: signatureStatus.context,\n value: {\n err: signatureStatus.value.err\n }\n };\n } else {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n }\n } finally {\n done = true;\n abortConfirmation();\n }\n return result;\n }\n async confirmTransactionUsingLegacyTimeoutStrategy({\n commitment,\n signature\n }) {\n let timeoutId;\n const expiryPromise = new Promise(resolve => {\n let timeoutMs = this._confirmTransactionInitialTimeout || 60 * 1000;\n switch (commitment) {\n case 'processed':\n case 'recent':\n case 'single':\n case 'confirmed':\n case 'singleGossip':\n {\n timeoutMs = this._confirmTransactionInitialTimeout || 30 * 1000;\n break;\n }\n }\n timeoutId = setTimeout(() => resolve({\n __type: TransactionStatus.TIMED_OUT,\n timeoutMs\n }), timeoutMs);\n });\n const {\n abortConfirmation,\n confirmationPromise\n } = this.getTransactionConfirmationPromise({\n commitment,\n signature\n });\n let result;\n try {\n const outcome = await Promise.race([confirmationPromise, expiryPromise]);\n if (outcome.__type === TransactionStatus.PROCESSED) {\n result = outcome.response;\n } else {\n throw new TransactionExpiredTimeoutError(signature, outcome.timeoutMs / 1000);\n }\n } finally {\n clearTimeout(timeoutId);\n abortConfirmation();\n }\n return result;\n }\n\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n async getClusterNodes() {\n const unsafeRes = await this._rpcRequest('getClusterNodes', []);\n const res = create(unsafeRes, jsonRpcResult(array(ContactInfoResult)));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get cluster nodes');\n }\n return res.result;\n }\n\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n async getVoteAccounts(commitment) {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getVoteAccounts', args);\n const res = create(unsafeRes, GetVoteAccounts);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get vote accounts');\n }\n return res.result;\n }\n\n /**\n * Fetch the current slot that the node is processing\n */\n async getSlot(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getSlot', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get slot');\n }\n return res.result;\n }\n\n /**\n * Fetch the current slot leader of the cluster\n */\n async getSlotLeader(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getSlotLeader', args);\n const res = create(unsafeRes, jsonRpcResult(string()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get slot leader');\n }\n return res.result;\n }\n\n /**\n * Fetch `limit` number of slot leaders starting from `startSlot`\n *\n * @param startSlot fetch slot leaders starting from this slot\n * @param limit number of slot leaders to return\n */\n async getSlotLeaders(startSlot, limit) {\n const args = [startSlot, limit];\n const unsafeRes = await this._rpcRequest('getSlotLeaders', args);\n const res = create(unsafeRes, jsonRpcResult(array(PublicKeyFromString)));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get slot leaders');\n }\n return res.result;\n }\n\n /**\n * Fetch the current status of a signature\n */\n async getSignatureStatus(signature, config) {\n const {\n context,\n value: values\n } = await this.getSignatureStatuses([signature], config);\n assert(values.length === 1);\n const value = values[0];\n return {\n context,\n value\n };\n }\n\n /**\n * Fetch the current statuses of a batch of signatures\n */\n async getSignatureStatuses(signatures, config) {\n const params = [signatures];\n if (config) {\n params.push(config);\n }\n const unsafeRes = await this._rpcRequest('getSignatureStatuses', params);\n const res = create(unsafeRes, GetSignatureStatusesRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get signature status');\n }\n return res.result;\n }\n\n /**\n * Fetch the current transaction count of the cluster\n */\n async getTransactionCount(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getTransactionCount', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction count');\n }\n return res.result;\n }\n\n /**\n * Fetch the current total currency supply of the cluster in lamports\n *\n * @deprecated Deprecated since v1.2.8. Please use {@link getSupply} instead.\n */\n async getTotalSupply(commitment) {\n const result = await this.getSupply({\n commitment,\n excludeNonCirculatingAccountsList: true\n });\n return result.value.total;\n }\n\n /**\n * Fetch the cluster InflationGovernor parameters\n */\n async getInflationGovernor(commitment) {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getInflationGovernor', args);\n const res = create(unsafeRes, GetInflationGovernorRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation');\n }\n return res.result;\n }\n\n /**\n * Fetch the inflation reward for a list of addresses for an epoch\n */\n async getInflationReward(addresses, epoch, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([addresses.map(pubkey => pubkey.toBase58())], commitment, undefined /* encoding */, {\n ...config,\n epoch: epoch != null ? epoch : config?.epoch\n });\n const unsafeRes = await this._rpcRequest('getInflationReward', args);\n const res = create(unsafeRes, GetInflationRewardResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation reward');\n }\n return res.result;\n }\n\n /**\n * Fetch the specific inflation values for the current epoch\n */\n async getInflationRate() {\n const unsafeRes = await this._rpcRequest('getInflationRate', []);\n const res = create(unsafeRes, GetInflationRateRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation rate');\n }\n return res.result;\n }\n\n /**\n * Fetch the Epoch Info parameters\n */\n async getEpochInfo(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getEpochInfo', args);\n const res = create(unsafeRes, GetEpochInfoRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get epoch info');\n }\n return res.result;\n }\n\n /**\n * Fetch the Epoch Schedule parameters\n */\n async getEpochSchedule() {\n const unsafeRes = await this._rpcRequest('getEpochSchedule', []);\n const res = create(unsafeRes, GetEpochScheduleRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get epoch schedule');\n }\n const epochSchedule = res.result;\n return new EpochSchedule(epochSchedule.slotsPerEpoch, epochSchedule.leaderScheduleSlotOffset, epochSchedule.warmup, epochSchedule.firstNormalEpoch, epochSchedule.firstNormalSlot);\n }\n\n /**\n * Fetch the leader schedule for the current epoch\n * @return {Promise>}\n */\n async getLeaderSchedule() {\n const unsafeRes = await this._rpcRequest('getLeaderSchedule', []);\n const res = create(unsafeRes, GetLeaderScheduleRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get leader schedule');\n }\n return res.result;\n }\n\n /**\n * Fetch the minimum balance needed to exempt an account of `dataLength`\n * size from rent\n */\n async getMinimumBalanceForRentExemption(dataLength, commitment) {\n const args = this._buildArgs([dataLength], commitment);\n const unsafeRes = await this._rpcRequest('getMinimumBalanceForRentExemption', args);\n const res = create(unsafeRes, GetMinimumBalanceForRentExemptionRpcResult);\n if ('error' in res) {\n console.warn('Unable to fetch minimum balance for rent exemption');\n return 0;\n }\n return res.result;\n }\n\n /**\n * Fetch a recent blockhash from the cluster, return with context\n * @return {Promise>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n async getRecentBlockhashAndContext(commitment) {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getRecentBlockhash', args);\n const res = create(unsafeRes, GetRecentBlockhashAndContextRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get recent blockhash');\n }\n return res.result;\n }\n\n /**\n * Fetch recent performance samples\n * @return {Promise>}\n */\n async getRecentPerformanceSamples(limit) {\n const unsafeRes = await this._rpcRequest('getRecentPerformanceSamples', limit ? [limit] : []);\n const res = create(unsafeRes, GetRecentPerformanceSamplesRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get recent performance samples');\n }\n return res.result;\n }\n\n /**\n * Fetch the fee calculator for a recent blockhash from the cluster, return with context\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getFeeForMessage} instead.\n */\n async getFeeCalculatorForBlockhash(blockhash, commitment) {\n const args = this._buildArgs([blockhash], commitment);\n const unsafeRes = await this._rpcRequest('getFeeCalculatorForBlockhash', args);\n const res = create(unsafeRes, GetFeeCalculatorRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get fee calculator');\n }\n const {\n context,\n value\n } = res.result;\n return {\n context,\n value: value !== null ? value.feeCalculator : null\n };\n }\n\n /**\n * Fetch the fee for a message from the cluster, return with context\n */\n async getFeeForMessage(message, commitment) {\n const wireMessage = toBuffer(message.serialize()).toString('base64');\n const args = this._buildArgs([wireMessage], commitment);\n const unsafeRes = await this._rpcRequest('getFeeForMessage', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(number())));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get fee for message');\n }\n if (res.result === null) {\n throw new Error('invalid blockhash');\n }\n return res.result;\n }\n\n /**\n * Fetch a list of prioritization fees from recent blocks.\n */\n async getRecentPrioritizationFees(config) {\n const accounts = config?.lockedWritableAccounts?.map(key => key.toBase58());\n const args = accounts?.length ? [accounts] : [];\n const unsafeRes = await this._rpcRequest('getRecentPrioritizationFees', args);\n const res = create(unsafeRes, GetRecentPrioritizationFeesRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get recent prioritization fees');\n }\n return res.result;\n }\n /**\n * Fetch a recent blockhash from the cluster\n * @return {Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n async getRecentBlockhash(commitment) {\n try {\n const res = await this.getRecentBlockhashAndContext(commitment);\n return res.value;\n } catch (e) {\n throw new Error('failed to get recent blockhash: ' + e);\n }\n }\n\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise}\n */\n async getLatestBlockhash(commitmentOrConfig) {\n try {\n const res = await this.getLatestBlockhashAndContext(commitmentOrConfig);\n return res.value;\n } catch (e) {\n throw new Error('failed to get recent blockhash: ' + e);\n }\n }\n\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise}\n */\n async getLatestBlockhashAndContext(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgs([], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getLatestBlockhash', args);\n const res = create(unsafeRes, GetLatestBlockhashRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get latest blockhash');\n }\n return res.result;\n }\n\n /**\n * Returns whether a blockhash is still valid or not\n */\n async isBlockhashValid(blockhash, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n const args = this._buildArgs([blockhash], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('isBlockhashValid', args);\n const res = create(unsafeRes, IsBlockhashValidRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to determine if the blockhash `' + blockhash + '`is valid');\n }\n return res.result;\n }\n\n /**\n * Fetch the node version\n */\n async getVersion() {\n const unsafeRes = await this._rpcRequest('getVersion', []);\n const res = create(unsafeRes, jsonRpcResult(VersionResult));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get version');\n }\n return res.result;\n }\n\n /**\n * Fetch the genesis hash\n */\n async getGenesisHash() {\n const unsafeRes = await this._rpcRequest('getGenesisHash', []);\n const res = create(unsafeRes, jsonRpcResult(string()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get genesis hash');\n }\n return res.result;\n }\n\n /**\n * Fetch a processed block from the cluster.\n *\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */\n\n /**\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */ // eslint-disable-next-line no-dupe-class-members\n /**\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */\n // eslint-disable-next-line no-dupe-class-members\n /**\n * Fetch a processed block from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n /**\n * Fetch a processed block from the cluster.\n */ // eslint-disable-next-line no-dupe-class-members\n async getBlock(slot, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getBlock', args);\n try {\n switch (config?.transactionDetails) {\n case 'accounts':\n {\n const res = create(unsafeRes, GetAccountsModeBlockRpcResult);\n if ('error' in res) {\n throw res.error;\n }\n return res.result;\n }\n case 'none':\n {\n const res = create(unsafeRes, GetNoneModeBlockRpcResult);\n if ('error' in res) {\n throw res.error;\n }\n return res.result;\n }\n default:\n {\n const res = create(unsafeRes, GetBlockRpcResult);\n if ('error' in res) {\n throw res.error;\n }\n const {\n result\n } = res;\n return result ? {\n ...result,\n transactions: result.transactions.map(({\n transaction,\n meta,\n version\n }) => ({\n meta,\n transaction: {\n ...transaction,\n message: versionedMessageFromResponse(version, transaction.message)\n },\n version\n }))\n } : null;\n }\n }\n } catch (e) {\n throw new SolanaJSONRPCError(e, 'failed to get confirmed block');\n }\n }\n\n /**\n * Fetch parsed transaction details for a confirmed or finalized block\n */\n\n // eslint-disable-next-line no-dupe-class-members\n\n // eslint-disable-next-line no-dupe-class-members\n\n // eslint-disable-next-line no-dupe-class-members\n async getParsedBlock(slot, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, 'jsonParsed', config);\n const unsafeRes = await this._rpcRequest('getBlock', args);\n try {\n switch (config?.transactionDetails) {\n case 'accounts':\n {\n const res = create(unsafeRes, GetParsedAccountsModeBlockRpcResult);\n if ('error' in res) {\n throw res.error;\n }\n return res.result;\n }\n case 'none':\n {\n const res = create(unsafeRes, GetParsedNoneModeBlockRpcResult);\n if ('error' in res) {\n throw res.error;\n }\n return res.result;\n }\n default:\n {\n const res = create(unsafeRes, GetParsedBlockRpcResult);\n if ('error' in res) {\n throw res.error;\n }\n return res.result;\n }\n }\n } catch (e) {\n throw new SolanaJSONRPCError(e, 'failed to get block');\n }\n }\n /*\n * Returns recent block production information from the current or previous epoch\n */\n async getBlockProduction(configOrCommitment) {\n let extra;\n let commitment;\n if (typeof configOrCommitment === 'string') {\n commitment = configOrCommitment;\n } else if (configOrCommitment) {\n const {\n commitment: c,\n ...rest\n } = configOrCommitment;\n commitment = c;\n extra = rest;\n }\n const args = this._buildArgs([], commitment, 'base64', extra);\n const unsafeRes = await this._rpcRequest('getBlockProduction', args);\n const res = create(unsafeRes, BlockProductionResponseStruct);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get block production information');\n }\n return res.result;\n }\n\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n *\n * @deprecated Instead, call `getTransaction` using a\n * `GetVersionedTransactionConfig` by setting the\n * `maxSupportedTransactionVersion` property.\n */\n\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n */ // eslint-disable-next-line no-dupe-class-members\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n */ // eslint-disable-next-line no-dupe-class-members\n async getTransaction(signature, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, undefined /* encoding */, config);\n const unsafeRes = await this._rpcRequest('getTransaction', args);\n const res = create(unsafeRes, GetTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n }\n const result = res.result;\n if (!result) return result;\n return {\n ...result,\n transaction: {\n ...result.transaction,\n message: versionedMessageFromResponse(result.version, result.transaction.message)\n }\n };\n }\n\n /**\n * Fetch parsed transaction details for a confirmed or finalized transaction\n */\n async getParsedTransaction(signature, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed', config);\n const unsafeRes = await this._rpcRequest('getTransaction', args);\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n }\n return res.result;\n }\n\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n */\n async getParsedTransactions(signatures, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed', config);\n return {\n methodName: 'getTransaction',\n args\n };\n });\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map(unsafeRes => {\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n }\n return res.result;\n });\n return res;\n }\n\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link TransactionResponse}.\n *\n * @deprecated Instead, call `getTransactions` using a\n * `GetVersionedTransactionConfig` by setting the\n * `maxSupportedTransactionVersion` property.\n */\n\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link\n * VersionedTransactionResponse}.\n */ // eslint-disable-next-line no-dupe-class-members\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link\n * VersionedTransactionResponse}.\n */ // eslint-disable-next-line no-dupe-class-members\n async getTransactions(signatures, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, undefined /* encoding */, config);\n return {\n methodName: 'getTransaction',\n args\n };\n });\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map(unsafeRes => {\n const res = create(unsafeRes, GetTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n }\n const result = res.result;\n if (!result) return result;\n return {\n ...result,\n transaction: {\n ...result.transaction,\n message: versionedMessageFromResponse(result.version, result.transaction.message)\n }\n };\n });\n return res;\n }\n\n /**\n * Fetch a list of Transactions and transaction statuses from the cluster\n * for a confirmed block.\n *\n * @deprecated Deprecated since v1.13.0. Please use {@link getBlock} instead.\n */\n async getConfirmedBlock(slot, commitment) {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment);\n const unsafeRes = await this._rpcRequest('getConfirmedBlock', args);\n const res = create(unsafeRes, GetConfirmedBlockRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n }\n const result = res.result;\n if (!result) {\n throw new Error('Confirmed block ' + slot + ' not found');\n }\n const block = {\n ...result,\n transactions: result.transactions.map(({\n transaction,\n meta\n }) => {\n const message = new Message(transaction.message);\n return {\n meta,\n transaction: {\n ...transaction,\n message\n }\n };\n })\n };\n return {\n ...block,\n transactions: block.transactions.map(({\n transaction,\n meta\n }) => {\n return {\n meta,\n transaction: Transaction.populate(transaction.message, transaction.signatures)\n };\n })\n };\n }\n\n /**\n * Fetch confirmed blocks between two slots\n */\n async getBlocks(startSlot, endSlot, commitment) {\n const args = this._buildArgsAtLeastConfirmed(endSlot !== undefined ? [startSlot, endSlot] : [startSlot], commitment);\n const unsafeRes = await this._rpcRequest('getBlocks', args);\n const res = create(unsafeRes, jsonRpcResult(array(number())));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get blocks');\n }\n return res.result;\n }\n\n /**\n * Fetch a list of Signatures from the cluster for a block, excluding rewards\n */\n async getBlockSignatures(slot, commitment) {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined, {\n transactionDetails: 'signatures',\n rewards: false\n });\n const unsafeRes = await this._rpcRequest('getBlock', args);\n const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get block');\n }\n const result = res.result;\n if (!result) {\n throw new Error('Block ' + slot + ' not found');\n }\n return result;\n }\n\n /**\n * Fetch a list of Signatures from the cluster for a confirmed block, excluding rewards\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getBlockSignatures} instead.\n */\n async getConfirmedBlockSignatures(slot, commitment) {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined, {\n transactionDetails: 'signatures',\n rewards: false\n });\n const unsafeRes = await this._rpcRequest('getConfirmedBlock', args);\n const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n }\n const result = res.result;\n if (!result) {\n throw new Error('Confirmed block ' + slot + ' not found');\n }\n return result;\n }\n\n /**\n * Fetch a transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getTransaction} instead.\n */\n async getConfirmedTransaction(signature, commitment) {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment);\n const unsafeRes = await this._rpcRequest('getConfirmedTransaction', args);\n const res = create(unsafeRes, GetTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n }\n const result = res.result;\n if (!result) return result;\n const message = new Message(result.transaction.message);\n const signatures = result.transaction.signatures;\n return {\n ...result,\n transaction: Transaction.populate(message, signatures)\n };\n }\n\n /**\n * Fetch parsed transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransaction} instead.\n */\n async getParsedConfirmedTransaction(signature, commitment) {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed');\n const unsafeRes = await this._rpcRequest('getConfirmedTransaction', args);\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed transaction');\n }\n return res.result;\n }\n\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransactions} instead.\n */\n async getParsedConfirmedTransactions(signatures, commitment) {\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed');\n return {\n methodName: 'getConfirmedTransaction',\n args\n };\n });\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map(unsafeRes => {\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed transactions');\n }\n return res.result;\n });\n return res;\n }\n\n /**\n * Fetch a list of all the confirmed signatures for transactions involving an address\n * within a specified slot range. Max range allowed is 10,000 slots.\n *\n * @deprecated Deprecated since v1.3. Please use {@link getConfirmedSignaturesForAddress2} instead.\n *\n * @param address queried address\n * @param startSlot start slot, inclusive\n * @param endSlot end slot, inclusive\n */\n async getConfirmedSignaturesForAddress(address, startSlot, endSlot) {\n let options = {};\n let firstAvailableBlock = await this.getFirstAvailableBlock();\n while (!('until' in options)) {\n startSlot--;\n if (startSlot <= 0 || startSlot < firstAvailableBlock) {\n break;\n }\n try {\n const block = await this.getConfirmedBlockSignatures(startSlot, 'finalized');\n if (block.signatures.length > 0) {\n options.until = block.signatures[block.signatures.length - 1].toString();\n }\n } catch (err) {\n if (err instanceof Error && err.message.includes('skipped')) {\n continue;\n } else {\n throw err;\n }\n }\n }\n let highestConfirmedRoot = await this.getSlot('finalized');\n while (!('before' in options)) {\n endSlot++;\n if (endSlot > highestConfirmedRoot) {\n break;\n }\n try {\n const block = await this.getConfirmedBlockSignatures(endSlot);\n if (block.signatures.length > 0) {\n options.before = block.signatures[block.signatures.length - 1].toString();\n }\n } catch (err) {\n if (err instanceof Error && err.message.includes('skipped')) {\n continue;\n } else {\n throw err;\n }\n }\n }\n const confirmedSignatureInfo = await this.getConfirmedSignaturesForAddress2(address, options);\n return confirmedSignatureInfo.map(info => info.signature);\n }\n\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n async getConfirmedSignaturesForAddress2(address, options, commitment) {\n const args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, undefined, options);\n const unsafeRes = await this._rpcRequest('getConfirmedSignaturesForAddress2', args);\n const res = create(unsafeRes, GetConfirmedSignaturesForAddress2RpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed signatures for address');\n }\n return res.result;\n }\n\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n async getSignaturesForAddress(address, options, commitment) {\n const args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, undefined, options);\n const unsafeRes = await this._rpcRequest('getSignaturesForAddress', args);\n const res = create(unsafeRes, GetSignaturesForAddressRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get signatures for address');\n }\n return res.result;\n }\n async getAddressLookupTable(accountKey, config) {\n const {\n context,\n value: accountInfo\n } = await this.getAccountInfoAndContext(accountKey, config);\n let value = null;\n if (accountInfo !== null) {\n value = new AddressLookupTableAccount({\n key: accountKey,\n state: AddressLookupTableAccount.deserialize(accountInfo.data)\n });\n }\n return {\n context,\n value\n };\n }\n\n /**\n * Fetch the contents of a Nonce account from the cluster, return with context\n */\n async getNonceAndContext(nonceAccount, commitmentOrConfig) {\n const {\n context,\n value: accountInfo\n } = await this.getAccountInfoAndContext(nonceAccount, commitmentOrConfig);\n let value = null;\n if (accountInfo !== null) {\n value = NonceAccount.fromAccountData(accountInfo.data);\n }\n return {\n context,\n value\n };\n }\n\n /**\n * Fetch the contents of a Nonce account from the cluster\n */\n async getNonce(nonceAccount, commitmentOrConfig) {\n return await this.getNonceAndContext(nonceAccount, commitmentOrConfig).then(x => x.value).catch(e => {\n throw new Error('failed to get nonce for account ' + nonceAccount.toBase58() + ': ' + e);\n });\n }\n\n /**\n * Request an allocation of lamports to the specified address\n *\n * ```typescript\n * import { Connection, PublicKey, LAMPORTS_PER_SOL } from \"@solana/web3.js\";\n *\n * (async () => {\n * const connection = new Connection(\"https://api.testnet.solana.com\", \"confirmed\");\n * const myAddress = new PublicKey(\"2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM\");\n * const signature = await connection.requestAirdrop(myAddress, LAMPORTS_PER_SOL);\n * await connection.confirmTransaction(signature);\n * })();\n * ```\n */\n async requestAirdrop(to, lamports) {\n const unsafeRes = await this._rpcRequest('requestAirdrop', [to.toBase58(), lamports]);\n const res = create(unsafeRes, RequestAirdropRpcResult);\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `airdrop to ${to.toBase58()} failed`);\n }\n return res.result;\n }\n\n /**\n * @internal\n */\n async _blockhashWithExpiryBlockHeight(disableCache) {\n if (!disableCache) {\n // Wait for polling to finish\n while (this._pollingBlockhash) {\n await sleep(100);\n }\n const timeSinceFetch = Date.now() - this._blockhashInfo.lastFetch;\n const expired = timeSinceFetch >= BLOCKHASH_CACHE_TIMEOUT_MS;\n if (this._blockhashInfo.latestBlockhash !== null && !expired) {\n return this._blockhashInfo.latestBlockhash;\n }\n }\n return await this._pollNewBlockhash();\n }\n\n /**\n * @internal\n */\n async _pollNewBlockhash() {\n this._pollingBlockhash = true;\n try {\n const startTime = Date.now();\n const cachedLatestBlockhash = this._blockhashInfo.latestBlockhash;\n const cachedBlockhash = cachedLatestBlockhash ? cachedLatestBlockhash.blockhash : null;\n for (let i = 0; i < 50; i++) {\n const latestBlockhash = await this.getLatestBlockhash('finalized');\n if (cachedBlockhash !== latestBlockhash.blockhash) {\n this._blockhashInfo = {\n latestBlockhash,\n lastFetch: Date.now(),\n transactionSignatures: [],\n simulatedSignatures: []\n };\n return latestBlockhash;\n }\n\n // Sleep for approximately half a slot\n await sleep(MS_PER_SLOT / 2);\n }\n throw new Error(`Unable to obtain a new blockhash after ${Date.now() - startTime}ms`);\n } finally {\n this._pollingBlockhash = false;\n }\n }\n\n /**\n * get the stake minimum delegation\n */\n async getStakeMinimumDelegation(config) {\n const {\n commitment,\n config: configArg\n } = extractCommitmentFromConfig(config);\n const args = this._buildArgs([], commitment, 'base64', configArg);\n const unsafeRes = await this._rpcRequest('getStakeMinimumDelegation', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get stake minimum delegation`);\n }\n return res.result;\n }\n\n /**\n * Simulate a transaction\n *\n * @deprecated Instead, call {@link simulateTransaction} with {@link\n * VersionedTransaction} and {@link SimulateTransactionConfig} parameters\n */\n\n /**\n * Simulate a transaction\n */ // eslint-disable-next-line no-dupe-class-members\n /**\n * Simulate a transaction\n */ // eslint-disable-next-line no-dupe-class-members\n async simulateTransaction(transactionOrMessage, configOrSigners, includeAccounts) {\n if ('message' in transactionOrMessage) {\n const versionedTx = transactionOrMessage;\n const wireTransaction = versionedTx.serialize();\n const encodedTransaction = Buffer.from(wireTransaction).toString('base64');\n if (Array.isArray(configOrSigners) || includeAccounts !== undefined) {\n throw new Error('Invalid arguments');\n }\n const config = configOrSigners || {};\n config.encoding = 'base64';\n if (!('commitment' in config)) {\n config.commitment = this.commitment;\n }\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n if ('error' in res) {\n throw new Error('failed to simulate transaction: ' + res.error.message);\n }\n return res.result;\n }\n let transaction;\n if (transactionOrMessage instanceof Transaction) {\n let originalTx = transactionOrMessage;\n transaction = new Transaction();\n transaction.feePayer = originalTx.feePayer;\n transaction.instructions = transactionOrMessage.instructions;\n transaction.nonceInfo = originalTx.nonceInfo;\n transaction.signatures = originalTx.signatures;\n } else {\n transaction = Transaction.populate(transactionOrMessage);\n // HACK: this function relies on mutating the populated transaction\n transaction._message = transaction._json = undefined;\n }\n if (configOrSigners !== undefined && !Array.isArray(configOrSigners)) {\n throw new Error('Invalid arguments');\n }\n const signers = configOrSigners;\n if (transaction.nonceInfo && signers) {\n transaction.sign(...signers);\n } else {\n let disableCache = this._disableBlockhashCaching;\n for (;;) {\n const latestBlockhash = await this._blockhashWithExpiryBlockHeight(disableCache);\n transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n transaction.recentBlockhash = latestBlockhash.blockhash;\n if (!signers) break;\n transaction.sign(...signers);\n if (!transaction.signature) {\n throw new Error('!signature'); // should never happen\n }\n\n const signature = transaction.signature.toString('base64');\n if (!this._blockhashInfo.simulatedSignatures.includes(signature) && !this._blockhashInfo.transactionSignatures.includes(signature)) {\n // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n this._blockhashInfo.simulatedSignatures.push(signature);\n break;\n } else {\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n }\n }\n }\n const message = transaction._compile();\n const signData = message.serialize();\n const wireTransaction = transaction._serialize(signData);\n const encodedTransaction = wireTransaction.toString('base64');\n const config = {\n encoding: 'base64',\n commitment: this.commitment\n };\n if (includeAccounts) {\n const addresses = (Array.isArray(includeAccounts) ? includeAccounts : message.nonProgramIds()).map(key => key.toBase58());\n config['accounts'] = {\n encoding: 'base64',\n addresses\n };\n }\n if (signers) {\n config.sigVerify = true;\n }\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n if ('error' in res) {\n let logs;\n if ('data' in res.error) {\n logs = res.error.data.logs;\n if (logs && Array.isArray(logs)) {\n const traceIndent = '\\n ';\n const logTrace = traceIndent + logs.join(traceIndent);\n console.error(res.error.message, logTrace);\n }\n }\n throw new SendTransactionError('failed to simulate transaction: ' + res.error.message, logs);\n }\n return res.result;\n }\n\n /**\n * Sign and send a transaction\n *\n * @deprecated Instead, call {@link sendTransaction} with a {@link\n * VersionedTransaction}\n */\n\n /**\n * Send a signed transaction\n */ // eslint-disable-next-line no-dupe-class-members\n /**\n * Sign and send a transaction\n */ // eslint-disable-next-line no-dupe-class-members\n async sendTransaction(transaction, signersOrOptions, options) {\n if ('version' in transaction) {\n if (signersOrOptions && Array.isArray(signersOrOptions)) {\n throw new Error('Invalid arguments');\n }\n const wireTransaction = transaction.serialize();\n return await this.sendRawTransaction(wireTransaction, signersOrOptions);\n }\n if (signersOrOptions === undefined || !Array.isArray(signersOrOptions)) {\n throw new Error('Invalid arguments');\n }\n const signers = signersOrOptions;\n if (transaction.nonceInfo) {\n transaction.sign(...signers);\n } else {\n let disableCache = this._disableBlockhashCaching;\n for (;;) {\n const latestBlockhash = await this._blockhashWithExpiryBlockHeight(disableCache);\n transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n transaction.recentBlockhash = latestBlockhash.blockhash;\n transaction.sign(...signers);\n if (!transaction.signature) {\n throw new Error('!signature'); // should never happen\n }\n\n const signature = transaction.signature.toString('base64');\n if (!this._blockhashInfo.transactionSignatures.includes(signature)) {\n // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n this._blockhashInfo.transactionSignatures.push(signature);\n break;\n } else {\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n }\n }\n }\n const wireTransaction = transaction.serialize();\n return await this.sendRawTransaction(wireTransaction, options);\n }\n\n /**\n * Send a transaction that has already been signed and serialized into the\n * wire format\n */\n async sendRawTransaction(rawTransaction, options) {\n const encodedTransaction = toBuffer(rawTransaction).toString('base64');\n const result = await this.sendEncodedTransaction(encodedTransaction, options);\n return result;\n }\n\n /**\n * Send a transaction that has already been signed, serialized into the\n * wire format, and encoded as a base64 string\n */\n async sendEncodedTransaction(encodedTransaction, options) {\n const config = {\n encoding: 'base64'\n };\n const skipPreflight = options && options.skipPreflight;\n const preflightCommitment = options && options.preflightCommitment || this.commitment;\n if (options && options.maxRetries != null) {\n config.maxRetries = options.maxRetries;\n }\n if (options && options.minContextSlot != null) {\n config.minContextSlot = options.minContextSlot;\n }\n if (skipPreflight) {\n config.skipPreflight = skipPreflight;\n }\n if (preflightCommitment) {\n config.preflightCommitment = preflightCommitment;\n }\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('sendTransaction', args);\n const res = create(unsafeRes, SendTransactionRpcResult);\n if ('error' in res) {\n let logs;\n if ('data' in res.error) {\n logs = res.error.data.logs;\n }\n throw new SendTransactionError('failed to send transaction: ' + res.error.message, logs);\n }\n return res.result;\n }\n\n /**\n * @internal\n */\n _wsOnOpen() {\n this._rpcWebSocketConnected = true;\n this._rpcWebSocketHeartbeat = setInterval(() => {\n // Ping server every 5s to prevent idle timeouts\n (async () => {\n try {\n await this._rpcWebSocket.notify('ping');\n // eslint-disable-next-line no-empty\n } catch {}\n })();\n }, 5000);\n this._updateSubscriptions();\n }\n\n /**\n * @internal\n */\n _wsOnError(err) {\n this._rpcWebSocketConnected = false;\n console.error('ws error:', err.message);\n }\n\n /**\n * @internal\n */\n _wsOnClose(code) {\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketGeneration = (this._rpcWebSocketGeneration + 1) % Number.MAX_SAFE_INTEGER;\n if (this._rpcWebSocketIdleTimeout) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n }\n if (this._rpcWebSocketHeartbeat) {\n clearInterval(this._rpcWebSocketHeartbeat);\n this._rpcWebSocketHeartbeat = null;\n }\n if (code === 1000) {\n // explicit close, check if any subscriptions have been made since close\n this._updateSubscriptions();\n return;\n }\n\n // implicit close, prepare subscriptions for auto-reconnect\n this._subscriptionCallbacksByServerSubscriptionId = {};\n Object.entries(this._subscriptionsByHash).forEach(([hash, subscription]) => {\n this._setSubscription(hash, {\n ...subscription,\n state: 'pending'\n });\n });\n }\n\n /**\n * @internal\n */\n _setSubscription(hash, nextSubscription) {\n const prevState = this._subscriptionsByHash[hash]?.state;\n this._subscriptionsByHash[hash] = nextSubscription;\n if (prevState !== nextSubscription.state) {\n const stateChangeCallbacks = this._subscriptionStateChangeCallbacksByHash[hash];\n if (stateChangeCallbacks) {\n stateChangeCallbacks.forEach(cb => {\n try {\n cb(nextSubscription.state);\n // eslint-disable-next-line no-empty\n } catch {}\n });\n }\n }\n }\n\n /**\n * @internal\n */\n _onSubscriptionStateChange(clientSubscriptionId, callback) {\n const hash = this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n if (hash == null) {\n return () => {};\n }\n const stateChangeCallbacks = this._subscriptionStateChangeCallbacksByHash[hash] ||= new Set();\n stateChangeCallbacks.add(callback);\n return () => {\n stateChangeCallbacks.delete(callback);\n if (stateChangeCallbacks.size === 0) {\n delete this._subscriptionStateChangeCallbacksByHash[hash];\n }\n };\n }\n\n /**\n * @internal\n */\n async _updateSubscriptions() {\n if (Object.keys(this._subscriptionsByHash).length === 0) {\n if (this._rpcWebSocketConnected) {\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketIdleTimeout = setTimeout(() => {\n this._rpcWebSocketIdleTimeout = null;\n try {\n this._rpcWebSocket.close();\n } catch (err) {\n // swallow error if socket has already been closed.\n if (err instanceof Error) {\n console.log(`Error when closing socket connection: ${err.message}`);\n }\n }\n }, 500);\n }\n return;\n }\n if (this._rpcWebSocketIdleTimeout !== null) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n this._rpcWebSocketConnected = true;\n }\n if (!this._rpcWebSocketConnected) {\n this._rpcWebSocket.connect();\n return;\n }\n const activeWebSocketGeneration = this._rpcWebSocketGeneration;\n const isCurrentConnectionStillActive = () => {\n return activeWebSocketGeneration === this._rpcWebSocketGeneration;\n };\n await Promise.all(\n // Don't be tempted to change this to `Object.entries`. We call\n // `_updateSubscriptions` recursively when processing the state,\n // so it's important that we look up the *current* version of\n // each subscription, every time we process a hash.\n Object.keys(this._subscriptionsByHash).map(async hash => {\n const subscription = this._subscriptionsByHash[hash];\n if (subscription === undefined) {\n // This entry has since been deleted. Skip.\n return;\n }\n switch (subscription.state) {\n case 'pending':\n case 'unsubscribed':\n if (subscription.callbacks.size === 0) {\n /**\n * You can end up here when:\n *\n * - a subscription has recently unsubscribed\n * without having new callbacks added to it\n * while the unsubscribe was in flight, or\n * - when a pending subscription has its\n * listeners removed before a request was\n * sent to the server.\n *\n * Being that nobody is interested in this\n * subscription any longer, delete it.\n */\n delete this._subscriptionsByHash[hash];\n if (subscription.state === 'unsubscribed') {\n delete this._subscriptionCallbacksByServerSubscriptionId[subscription.serverSubscriptionId];\n }\n await this._updateSubscriptions();\n return;\n }\n await (async () => {\n const {\n args,\n method\n } = subscription;\n try {\n this._setSubscription(hash, {\n ...subscription,\n state: 'subscribing'\n });\n const serverSubscriptionId = await this._rpcWebSocket.call(method, args);\n this._setSubscription(hash, {\n ...subscription,\n serverSubscriptionId,\n state: 'subscribed'\n });\n this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId] = subscription.callbacks;\n await this._updateSubscriptions();\n } catch (e) {\n if (e instanceof Error) {\n console.error(`${method} error for argument`, args, e.message);\n }\n if (!isCurrentConnectionStillActive()) {\n return;\n }\n // TODO: Maybe add an 'errored' state or a retry limit?\n this._setSubscription(hash, {\n ...subscription,\n state: 'pending'\n });\n await this._updateSubscriptions();\n }\n })();\n break;\n case 'subscribed':\n if (subscription.callbacks.size === 0) {\n // By the time we successfully set up a subscription\n // with the server, the client stopped caring about it.\n // Tear it down now.\n await (async () => {\n const {\n serverSubscriptionId,\n unsubscribeMethod\n } = subscription;\n if (this._subscriptionsAutoDisposedByRpc.has(serverSubscriptionId)) {\n /**\n * Special case.\n * If we're dealing with a subscription that has been auto-\n * disposed by the RPC, then we can skip the RPC call to\n * tear down the subscription here.\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n this._subscriptionsAutoDisposedByRpc.delete(serverSubscriptionId);\n } else {\n this._setSubscription(hash, {\n ...subscription,\n state: 'unsubscribing'\n });\n this._setSubscription(hash, {\n ...subscription,\n state: 'unsubscribing'\n });\n try {\n await this._rpcWebSocket.call(unsubscribeMethod, [serverSubscriptionId]);\n } catch (e) {\n if (e instanceof Error) {\n console.error(`${unsubscribeMethod} error:`, e.message);\n }\n if (!isCurrentConnectionStillActive()) {\n return;\n }\n // TODO: Maybe add an 'errored' state or a retry limit?\n this._setSubscription(hash, {\n ...subscription,\n state: 'subscribed'\n });\n await this._updateSubscriptions();\n return;\n }\n }\n this._setSubscription(hash, {\n ...subscription,\n state: 'unsubscribed'\n });\n await this._updateSubscriptions();\n })();\n }\n break;\n }\n }));\n }\n\n /**\n * @internal\n */\n _handleServerNotification(serverSubscriptionId, callbackArgs) {\n const callbacks = this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId];\n if (callbacks === undefined) {\n return;\n }\n callbacks.forEach(cb => {\n try {\n cb(\n // I failed to find a way to convince TypeScript that `cb` is of type\n // `TCallback` which is certainly compatible with `Parameters`.\n // See https://github.com/microsoft/TypeScript/issues/47615\n // @ts-ignore\n ...callbackArgs);\n } catch (e) {\n console.error(e);\n }\n });\n }\n\n /**\n * @internal\n */\n _wsOnAccountNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, AccountNotificationResult);\n this._handleServerNotification(subscription, [result.value, result.context]);\n }\n\n /**\n * @internal\n */\n _makeSubscription(subscriptionConfig,\n /**\n * When preparing `args` for a call to `_makeSubscription`, be sure\n * to carefully apply a default `commitment` property, if necessary.\n *\n * - If the user supplied a `commitment` use that.\n * - Otherwise, if the `Connection::commitment` is set, use that.\n * - Otherwise, set it to the RPC server default: `finalized`.\n *\n * This is extremely important to ensure that these two fundamentally\n * identical subscriptions produce the same identifying hash:\n *\n * - A subscription made without specifying a commitment.\n * - A subscription made where the commitment specified is the same\n * as the default applied to the subscription above.\n *\n * Example; these two subscriptions must produce the same hash:\n *\n * - An `accountSubscribe` subscription for `'PUBKEY'`\n * - An `accountSubscribe` subscription for `'PUBKEY'` with commitment\n * `'finalized'`.\n *\n * See the 'making a subscription with defaulted params omitted' test\n * in `connection-subscriptions.ts` for more.\n */\n args) {\n const clientSubscriptionId = this._nextClientSubscriptionId++;\n const hash = fastStableStringify$1([subscriptionConfig.method, args], true /* isArrayProp */);\n\n const existingSubscription = this._subscriptionsByHash[hash];\n if (existingSubscription === undefined) {\n this._subscriptionsByHash[hash] = {\n ...subscriptionConfig,\n args,\n callbacks: new Set([subscriptionConfig.callback]),\n state: 'pending'\n };\n } else {\n existingSubscription.callbacks.add(subscriptionConfig.callback);\n }\n this._subscriptionHashByClientSubscriptionId[clientSubscriptionId] = hash;\n this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId] = async () => {\n delete this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId];\n delete this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n const subscription = this._subscriptionsByHash[hash];\n assert(subscription !== undefined, `Could not find a \\`Subscription\\` when tearing down client subscription #${clientSubscriptionId}`);\n subscription.callbacks.delete(subscriptionConfig.callback);\n await this._updateSubscriptions();\n };\n this._updateSubscriptions();\n return clientSubscriptionId;\n }\n\n /**\n * Register a callback to be invoked whenever the specified account changes\n *\n * @param publicKey Public key of the account to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @return subscription id\n */\n onAccountChange(publicKey, callback, commitment) {\n const args = this._buildArgs([publicKey.toBase58()], commitment || this._commitment || 'finalized',\n // Apply connection/server default.\n 'base64');\n return this._makeSubscription({\n callback,\n method: 'accountSubscribe',\n unsubscribeMethod: 'accountUnsubscribe'\n }, args);\n }\n\n /**\n * Deregister an account notification callback\n *\n * @param id client subscription id to deregister\n */\n async removeAccountChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'account change');\n }\n\n /**\n * @internal\n */\n _wsOnProgramAccountNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, ProgramAccountNotificationResult);\n this._handleServerNotification(subscription, [{\n accountId: result.value.pubkey,\n accountInfo: result.value.account\n }, result.context]);\n }\n\n /**\n * Register a callback to be invoked whenever accounts owned by the\n * specified program change\n *\n * @param programId Public key of the program to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @param filters The program account filters to pass into the RPC method\n * @return subscription id\n */\n onProgramAccountChange(programId, callback, commitment, filters) {\n const args = this._buildArgs([programId.toBase58()], commitment || this._commitment || 'finalized',\n // Apply connection/server default.\n 'base64' /* encoding */, filters ? {\n filters: filters\n } : undefined /* extra */);\n\n return this._makeSubscription({\n callback,\n method: 'programSubscribe',\n unsubscribeMethod: 'programUnsubscribe'\n }, args);\n }\n\n /**\n * Deregister an account notification callback\n *\n * @param id client subscription id to deregister\n */\n async removeProgramAccountChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'program account change');\n }\n\n /**\n * Registers a callback to be invoked whenever logs are emitted.\n */\n onLogs(filter, callback, commitment) {\n const args = this._buildArgs([typeof filter === 'object' ? {\n mentions: [filter.toString()]\n } : filter], commitment || this._commitment || 'finalized' // Apply connection/server default.\n );\n\n return this._makeSubscription({\n callback,\n method: 'logsSubscribe',\n unsubscribeMethod: 'logsUnsubscribe'\n }, args);\n }\n\n /**\n * Deregister a logs callback.\n *\n * @param id client subscription id to deregister.\n */\n async removeOnLogsListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'logs');\n }\n\n /**\n * @internal\n */\n _wsOnLogsNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, LogsNotificationResult);\n this._handleServerNotification(subscription, [result.value, result.context]);\n }\n\n /**\n * @internal\n */\n _wsOnSlotNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, SlotNotificationResult);\n this._handleServerNotification(subscription, [result]);\n }\n\n /**\n * Register a callback to be invoked upon slot changes\n *\n * @param callback Function to invoke whenever the slot changes\n * @return subscription id\n */\n onSlotChange(callback) {\n return this._makeSubscription({\n callback,\n method: 'slotSubscribe',\n unsubscribeMethod: 'slotUnsubscribe'\n }, [] /* args */);\n }\n\n /**\n * Deregister a slot notification callback\n *\n * @param id client subscription id to deregister\n */\n async removeSlotChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'slot change');\n }\n\n /**\n * @internal\n */\n _wsOnSlotUpdatesNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, SlotUpdateNotificationResult);\n this._handleServerNotification(subscription, [result]);\n }\n\n /**\n * Register a callback to be invoked upon slot updates. {@link SlotUpdate}'s\n * may be useful to track live progress of a cluster.\n *\n * @param callback Function to invoke whenever the slot updates\n * @return subscription id\n */\n onSlotUpdate(callback) {\n return this._makeSubscription({\n callback,\n method: 'slotsUpdatesSubscribe',\n unsubscribeMethod: 'slotsUpdatesUnsubscribe'\n }, [] /* args */);\n }\n\n /**\n * Deregister a slot update notification callback\n *\n * @param id client subscription id to deregister\n */\n async removeSlotUpdateListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'slot update');\n }\n\n /**\n * @internal\n */\n\n async _unsubscribeClientSubscription(clientSubscriptionId, subscriptionName) {\n const dispose = this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId];\n if (dispose) {\n await dispose();\n } else {\n console.warn('Ignored unsubscribe request because an active subscription with id ' + `\\`${clientSubscriptionId}\\` for '${subscriptionName}' events ` + 'could not be found.');\n }\n }\n _buildArgs(args, override, encoding, extra) {\n const commitment = override || this._commitment;\n if (commitment || encoding || extra) {\n let options = {};\n if (encoding) {\n options.encoding = encoding;\n }\n if (commitment) {\n options.commitment = commitment;\n }\n if (extra) {\n options = Object.assign(options, extra);\n }\n args.push(options);\n }\n return args;\n }\n\n /**\n * @internal\n */\n _buildArgsAtLeastConfirmed(args, override, encoding, extra) {\n const commitment = override || this._commitment;\n if (commitment && !['confirmed', 'finalized'].includes(commitment)) {\n throw new Error('Using Connection with default commitment: `' + this._commitment + '`, but method requires at least `confirmed`');\n }\n return this._buildArgs(args, override, encoding, extra);\n }\n\n /**\n * @internal\n */\n _wsOnSignatureNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, SignatureNotificationResult);\n if (result.value !== 'receivedSignature') {\n /**\n * Special case.\n * After a signature is processed, RPCs automatically dispose of the\n * subscription on the server side. We need to track which of these\n * subscriptions have been disposed in such a way, so that we know\n * whether the client is dealing with a not-yet-processed signature\n * (in which case we must tear down the server subscription) or an\n * already-processed signature (in which case the client can simply\n * clear out the subscription locally without telling the server).\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n this._subscriptionsAutoDisposedByRpc.add(subscription);\n }\n this._handleServerNotification(subscription, result.value === 'receivedSignature' ? [{\n type: 'received'\n }, result.context] : [{\n type: 'status',\n result: result.value\n }, result.context]);\n }\n\n /**\n * Register a callback to be invoked upon signature updates\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param commitment Specify the commitment level signature must reach before notification\n * @return subscription id\n */\n onSignature(signature, callback, commitment) {\n const args = this._buildArgs([signature], commitment || this._commitment || 'finalized' // Apply connection/server default.\n );\n\n const clientSubscriptionId = this._makeSubscription({\n callback: (notification, context) => {\n if (notification.type === 'status') {\n callback(notification.result, context);\n // Signatures subscriptions are auto-removed by the RPC service\n // so no need to explicitly send an unsubscribe message.\n try {\n this.removeSignatureListener(clientSubscriptionId);\n // eslint-disable-next-line no-empty\n } catch (_err) {\n // Already removed.\n }\n }\n },\n method: 'signatureSubscribe',\n unsubscribeMethod: 'signatureUnsubscribe'\n }, args);\n return clientSubscriptionId;\n }\n\n /**\n * Register a callback to be invoked when a transaction is\n * received and/or processed.\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param options Enable received notifications and set the commitment\n * level that signature must reach before notification\n * @return subscription id\n */\n onSignatureWithOptions(signature, callback, options) {\n const {\n commitment,\n ...extra\n } = {\n ...options,\n commitment: options && options.commitment || this._commitment || 'finalized' // Apply connection/server default.\n };\n\n const args = this._buildArgs([signature], commitment, undefined /* encoding */, extra);\n const clientSubscriptionId = this._makeSubscription({\n callback: (notification, context) => {\n callback(notification, context);\n // Signatures subscriptions are auto-removed by the RPC service\n // so no need to explicitly send an unsubscribe message.\n try {\n this.removeSignatureListener(clientSubscriptionId);\n // eslint-disable-next-line no-empty\n } catch (_err) {\n // Already removed.\n }\n },\n method: 'signatureSubscribe',\n unsubscribeMethod: 'signatureUnsubscribe'\n }, args);\n return clientSubscriptionId;\n }\n\n /**\n * Deregister a signature notification callback\n *\n * @param id client subscription id to deregister\n */\n async removeSignatureListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'signature result');\n }\n\n /**\n * @internal\n */\n _wsOnRootNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, RootNotificationResult);\n this._handleServerNotification(subscription, [result]);\n }\n\n /**\n * Register a callback to be invoked upon root changes\n *\n * @param callback Function to invoke whenever the root changes\n * @return subscription id\n */\n onRootChange(callback) {\n return this._makeSubscription({\n callback,\n method: 'rootSubscribe',\n unsubscribeMethod: 'rootUnsubscribe'\n }, [] /* args */);\n }\n\n /**\n * Deregister a root notification callback\n *\n * @param id client subscription id to deregister\n */\n async removeRootChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'root change');\n }\n}\n\n/**\n * Keypair signer interface\n */\n\n/**\n * An account keypair used for signing transactions.\n */\nclass Keypair {\n /**\n * Create a new keypair instance.\n * Generate random keypair if no {@link Ed25519Keypair} is provided.\n *\n * @param {Ed25519Keypair} keypair ed25519 keypair\n */\n constructor(keypair) {\n this._keypair = void 0;\n this._keypair = keypair ?? generateKeypair();\n }\n\n /**\n * Generate a new random keypair\n *\n * @returns {Keypair} Keypair\n */\n static generate() {\n return new Keypair(generateKeypair());\n }\n\n /**\n * Create a keypair from a raw secret key byte array.\n *\n * This method should only be used to recreate a keypair from a previously\n * generated secret key. Generating keypairs from a random seed should be done\n * with the {@link Keypair.fromSeed} method.\n *\n * @throws error if the provided secret key is invalid and validation is not skipped.\n *\n * @param secretKey secret key byte array\n * @param options skip secret key validation\n *\n * @returns {Keypair} Keypair\n */\n static fromSecretKey(secretKey, options) {\n if (secretKey.byteLength !== 64) {\n throw new Error('bad secret key size');\n }\n const publicKey = secretKey.slice(32, 64);\n if (!options || !options.skipValidation) {\n const privateScalar = secretKey.slice(0, 32);\n const computedPublicKey = getPublicKey(privateScalar);\n for (let ii = 0; ii < 32; ii++) {\n if (publicKey[ii] !== computedPublicKey[ii]) {\n throw new Error('provided secretKey is invalid');\n }\n }\n }\n return new Keypair({\n publicKey,\n secretKey\n });\n }\n\n /**\n * Generate a keypair from a 32 byte seed.\n *\n * @param seed seed byte array\n *\n * @returns {Keypair} Keypair\n */\n static fromSeed(seed) {\n const publicKey = getPublicKey(seed);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n return new Keypair({\n publicKey,\n secretKey\n });\n }\n\n /**\n * The public key for this keypair\n *\n * @returns {PublicKey} PublicKey\n */\n get publicKey() {\n return new PublicKey(this._keypair.publicKey);\n }\n\n /**\n * The raw secret key for this keypair\n * @returns {Uint8Array} Secret key in an array of Uint8 bytes\n */\n get secretKey() {\n return new Uint8Array(this._keypair.secretKey);\n }\n}\n\n/**\n * An enumeration of valid LookupTableInstructionType's\n */\n\n/**\n * An enumeration of valid address lookup table InstructionType's\n * @internal\n */\nconst LOOKUP_TABLE_INSTRUCTION_LAYOUTS = Object.freeze({\n CreateLookupTable: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64('recentSlot'), BufferLayout.u8('bumpSeed')])\n },\n FreezeLookupTable: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n ExtendLookupTable: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64(), BufferLayout.seq(publicKey(), BufferLayout.offset(BufferLayout.u32(), -8), 'addresses')])\n },\n DeactivateLookupTable: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n CloseLookupTable: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n }\n});\nclass AddressLookupTableInstruction {\n /**\n * @internal\n */\n constructor() {}\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const index = instructionTypeLayout.decode(instruction.data);\n let type;\n for (const [layoutType, layout] of Object.entries(LOOKUP_TABLE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == index) {\n type = layoutType;\n break;\n }\n }\n if (!type) {\n throw new Error('Invalid Instruction. Should be a LookupTable Instruction');\n }\n return type;\n }\n static decodeCreateLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 4);\n const {\n recentSlot\n } = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable, instruction.data);\n return {\n authority: instruction.keys[1].pubkey,\n payer: instruction.keys[2].pubkey,\n recentSlot: Number(recentSlot)\n };\n }\n static decodeExtendLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n if (instruction.keys.length < 2) {\n throw new Error(`invalid instruction; found ${instruction.keys.length} keys, expected at least 2`);\n }\n const {\n addresses\n } = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable, instruction.data);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey,\n payer: instruction.keys.length > 2 ? instruction.keys[2].pubkey : undefined,\n addresses: addresses.map(buffer => new PublicKey(buffer))\n };\n }\n static decodeCloseLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 3);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey,\n recipient: instruction.keys[2].pubkey\n };\n }\n static decodeFreezeLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 2);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey\n };\n }\n static decodeDeactivateLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 2);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId) {\n if (!programId.equals(AddressLookupTableProgram.programId)) {\n throw new Error('invalid instruction; programId is not AddressLookupTable Program');\n }\n }\n /**\n * @internal\n */\n static checkKeysLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n}\nclass AddressLookupTableProgram {\n /**\n * @internal\n */\n constructor() {}\n static createLookupTable(params) {\n const [lookupTableAddress, bumpSeed] = PublicKey.findProgramAddressSync([params.authority.toBuffer(), toBufferLE(BigInt(params.recentSlot), 8)], this.programId);\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable;\n const data = encodeData(type, {\n recentSlot: BigInt(params.recentSlot),\n bumpSeed: bumpSeed\n });\n const keys = [{\n pubkey: lookupTableAddress,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.payer,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n }];\n return [new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n }), lookupTableAddress];\n }\n static freezeLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.FreezeLookupTable;\n const data = encodeData(type);\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n static extendLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable;\n const data = encodeData(type, {\n addresses: params.addresses.map(addr => addr.toBytes())\n });\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n if (params.payer) {\n keys.push({\n pubkey: params.payer,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n });\n }\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n static deactivateLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.DeactivateLookupTable;\n const data = encodeData(type);\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n static closeLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CloseLookupTable;\n const data = encodeData(type);\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.recipient,\n isSigner: false,\n isWritable: true\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n}\nAddressLookupTableProgram.programId = new PublicKey('AddressLookupTab1e1111111111111111111111111');\n\n/**\n * Compute Budget Instruction class\n */\nclass ComputeBudgetInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a compute budget instruction and retrieve the instruction type.\n */\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u8('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n for (const [ixType, layout] of Object.entries(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n if (!type) {\n throw new Error('Instruction type incorrect; not a ComputeBudgetInstruction');\n }\n return type;\n }\n\n /**\n * Decode request units compute budget instruction and retrieve the instruction params.\n */\n static decodeRequestUnits(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n units,\n additionalFee\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits, instruction.data);\n return {\n units,\n additionalFee\n };\n }\n\n /**\n * Decode request heap frame compute budget instruction and retrieve the instruction params.\n */\n static decodeRequestHeapFrame(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n bytes\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame, instruction.data);\n return {\n bytes\n };\n }\n\n /**\n * Decode set compute unit limit compute budget instruction and retrieve the instruction params.\n */\n static decodeSetComputeUnitLimit(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n units\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit, instruction.data);\n return {\n units\n };\n }\n\n /**\n * Decode set compute unit price compute budget instruction and retrieve the instruction params.\n */\n static decodeSetComputeUnitPrice(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n microLamports\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice, instruction.data);\n return {\n microLamports\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId) {\n if (!programId.equals(ComputeBudgetProgram.programId)) {\n throw new Error('invalid instruction; programId is not ComputeBudgetProgram');\n }\n }\n}\n\n/**\n * An enumeration of valid ComputeBudgetInstructionType's\n */\n\n/**\n * Request units instruction params\n */\n\n/**\n * Request heap frame instruction params\n */\n\n/**\n * Set compute unit limit instruction params\n */\n\n/**\n * Set compute unit price instruction params\n */\n\n/**\n * An enumeration of valid ComputeBudget InstructionType's\n * @internal\n */\nconst COMPUTE_BUDGET_INSTRUCTION_LAYOUTS = Object.freeze({\n RequestUnits: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), BufferLayout.u32('units'), BufferLayout.u32('additionalFee')])\n },\n RequestHeapFrame: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), BufferLayout.u32('bytes')])\n },\n SetComputeUnitLimit: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), BufferLayout.u32('units')])\n },\n SetComputeUnitPrice: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), u64('microLamports')])\n }\n});\n\n/**\n * Factory class for transaction instructions to interact with the Compute Budget program\n */\nclass ComputeBudgetProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the Compute Budget program\n */\n\n /**\n * @deprecated Instead, call {@link setComputeUnitLimit} and/or {@link setComputeUnitPrice}\n */\n static requestUnits(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits;\n const data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n static requestHeapFrame(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame;\n const data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n static setComputeUnitLimit(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit;\n const data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n static setComputeUnitPrice(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice;\n const data = encodeData(type, {\n microLamports: BigInt(params.microLamports)\n });\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n}\nComputeBudgetProgram.programId = new PublicKey('ComputeBudget111111111111111111111111111111');\n\nconst PRIVATE_KEY_BYTES$1 = 64;\nconst PUBLIC_KEY_BYTES$1 = 32;\nconst SIGNATURE_BYTES = 64;\n\n/**\n * Params for creating an ed25519 instruction using a public key\n */\n\n/**\n * Params for creating an ed25519 instruction using a private key\n */\n\nconst ED25519_INSTRUCTION_LAYOUT = BufferLayout.struct([BufferLayout.u8('numSignatures'), BufferLayout.u8('padding'), BufferLayout.u16('signatureOffset'), BufferLayout.u16('signatureInstructionIndex'), BufferLayout.u16('publicKeyOffset'), BufferLayout.u16('publicKeyInstructionIndex'), BufferLayout.u16('messageDataOffset'), BufferLayout.u16('messageDataSize'), BufferLayout.u16('messageInstructionIndex')]);\nclass Ed25519Program {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the ed25519 program\n */\n\n /**\n * Create an ed25519 instruction with a public key and signature. The\n * public key must be a buffer that is 32 bytes long, and the signature\n * must be a buffer of 64 bytes.\n */\n static createInstructionWithPublicKey(params) {\n const {\n publicKey,\n message,\n signature,\n instructionIndex\n } = params;\n assert(publicKey.length === PUBLIC_KEY_BYTES$1, `Public Key must be ${PUBLIC_KEY_BYTES$1} bytes but received ${publicKey.length} bytes`);\n assert(signature.length === SIGNATURE_BYTES, `Signature must be ${SIGNATURE_BYTES} bytes but received ${signature.length} bytes`);\n const publicKeyOffset = ED25519_INSTRUCTION_LAYOUT.span;\n const signatureOffset = publicKeyOffset + publicKey.length;\n const messageDataOffset = signatureOffset + signature.length;\n const numSignatures = 1;\n const instructionData = Buffer.alloc(messageDataOffset + message.length);\n const index = instructionIndex == null ? 0xffff // An index of `u16::MAX` makes it default to the current instruction.\n : instructionIndex;\n ED25519_INSTRUCTION_LAYOUT.encode({\n numSignatures,\n padding: 0,\n signatureOffset,\n signatureInstructionIndex: index,\n publicKeyOffset,\n publicKeyInstructionIndex: index,\n messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: index\n }, instructionData);\n instructionData.fill(publicKey, publicKeyOffset);\n instructionData.fill(signature, signatureOffset);\n instructionData.fill(message, messageDataOffset);\n return new TransactionInstruction({\n keys: [],\n programId: Ed25519Program.programId,\n data: instructionData\n });\n }\n\n /**\n * Create an ed25519 instruction with a private key. The private key\n * must be a buffer that is 64 bytes long.\n */\n static createInstructionWithPrivateKey(params) {\n const {\n privateKey,\n message,\n instructionIndex\n } = params;\n assert(privateKey.length === PRIVATE_KEY_BYTES$1, `Private key must be ${PRIVATE_KEY_BYTES$1} bytes but received ${privateKey.length} bytes`);\n try {\n const keypair = Keypair.fromSecretKey(privateKey);\n const publicKey = keypair.publicKey.toBytes();\n const signature = sign(message, keypair.secretKey);\n return this.createInstructionWithPublicKey({\n publicKey,\n message,\n signature,\n instructionIndex\n });\n } catch (error) {\n throw new Error(`Error creating instruction; ${error}`);\n }\n }\n}\nEd25519Program.programId = new PublicKey('Ed25519SigVerify111111111111111111111111111');\n\nconst ecdsaSign = (msgHash, privKey) => {\n const signature = secp256k1.sign(msgHash, privKey);\n return [signature.toCompactRawBytes(), signature.recovery];\n};\nsecp256k1.utils.isValidPrivateKey;\nconst publicKeyCreate = secp256k1.getPublicKey;\n\nconst PRIVATE_KEY_BYTES = 32;\nconst ETHEREUM_ADDRESS_BYTES = 20;\nconst PUBLIC_KEY_BYTES = 64;\nconst SIGNATURE_OFFSETS_SERIALIZED_SIZE = 11;\n\n/**\n * Params for creating an secp256k1 instruction using a public key\n */\n\n/**\n * Params for creating an secp256k1 instruction using an Ethereum address\n */\n\n/**\n * Params for creating an secp256k1 instruction using a private key\n */\n\nconst SECP256K1_INSTRUCTION_LAYOUT = BufferLayout.struct([BufferLayout.u8('numSignatures'), BufferLayout.u16('signatureOffset'), BufferLayout.u8('signatureInstructionIndex'), BufferLayout.u16('ethAddressOffset'), BufferLayout.u8('ethAddressInstructionIndex'), BufferLayout.u16('messageDataOffset'), BufferLayout.u16('messageDataSize'), BufferLayout.u8('messageInstructionIndex'), BufferLayout.blob(20, 'ethAddress'), BufferLayout.blob(64, 'signature'), BufferLayout.u8('recoveryId')]);\nclass Secp256k1Program {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the secp256k1 program\n */\n\n /**\n * Construct an Ethereum address from a secp256k1 public key buffer.\n * @param {Buffer} publicKey a 64 byte secp256k1 public key buffer\n */\n static publicKeyToEthAddress(publicKey) {\n assert(publicKey.length === PUBLIC_KEY_BYTES, `Public key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey.length} bytes`);\n try {\n return Buffer.from(keccak_256(toBuffer(publicKey))).slice(-ETHEREUM_ADDRESS_BYTES);\n } catch (error) {\n throw new Error(`Error constructing Ethereum address: ${error}`);\n }\n }\n\n /**\n * Create an secp256k1 instruction with a public key. The public key\n * must be a buffer that is 64 bytes long.\n */\n static createInstructionWithPublicKey(params) {\n const {\n publicKey,\n message,\n signature,\n recoveryId,\n instructionIndex\n } = params;\n return Secp256k1Program.createInstructionWithEthAddress({\n ethAddress: Secp256k1Program.publicKeyToEthAddress(publicKey),\n message,\n signature,\n recoveryId,\n instructionIndex\n });\n }\n\n /**\n * Create an secp256k1 instruction with an Ethereum address. The address\n * must be a hex string or a buffer that is 20 bytes long.\n */\n static createInstructionWithEthAddress(params) {\n const {\n ethAddress: rawAddress,\n message,\n signature,\n recoveryId,\n instructionIndex = 0\n } = params;\n let ethAddress;\n if (typeof rawAddress === 'string') {\n if (rawAddress.startsWith('0x')) {\n ethAddress = Buffer.from(rawAddress.substr(2), 'hex');\n } else {\n ethAddress = Buffer.from(rawAddress, 'hex');\n }\n } else {\n ethAddress = rawAddress;\n }\n assert(ethAddress.length === ETHEREUM_ADDRESS_BYTES, `Address must be ${ETHEREUM_ADDRESS_BYTES} bytes but received ${ethAddress.length} bytes`);\n const dataStart = 1 + SIGNATURE_OFFSETS_SERIALIZED_SIZE;\n const ethAddressOffset = dataStart;\n const signatureOffset = dataStart + ethAddress.length;\n const messageDataOffset = signatureOffset + signature.length + 1;\n const numSignatures = 1;\n const instructionData = Buffer.alloc(SECP256K1_INSTRUCTION_LAYOUT.span + message.length);\n SECP256K1_INSTRUCTION_LAYOUT.encode({\n numSignatures,\n signatureOffset,\n signatureInstructionIndex: instructionIndex,\n ethAddressOffset,\n ethAddressInstructionIndex: instructionIndex,\n messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: instructionIndex,\n signature: toBuffer(signature),\n ethAddress: toBuffer(ethAddress),\n recoveryId\n }, instructionData);\n instructionData.fill(toBuffer(message), SECP256K1_INSTRUCTION_LAYOUT.span);\n return new TransactionInstruction({\n keys: [],\n programId: Secp256k1Program.programId,\n data: instructionData\n });\n }\n\n /**\n * Create an secp256k1 instruction with a private key. The private key\n * must be a buffer that is 32 bytes long.\n */\n static createInstructionWithPrivateKey(params) {\n const {\n privateKey: pkey,\n message,\n instructionIndex\n } = params;\n assert(pkey.length === PRIVATE_KEY_BYTES, `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${pkey.length} bytes`);\n try {\n const privateKey = toBuffer(pkey);\n const publicKey = publicKeyCreate(privateKey, false /* isCompressed */).slice(1); // throw away leading byte\n const messageHash = Buffer.from(keccak_256(toBuffer(message)));\n const [signature, recoveryId] = ecdsaSign(messageHash, privateKey);\n return this.createInstructionWithPublicKey({\n publicKey,\n message,\n signature,\n recoveryId,\n instructionIndex\n });\n } catch (error) {\n throw new Error(`Error creating instruction; ${error}`);\n }\n }\n}\nSecp256k1Program.programId = new PublicKey('KeccakSecp256k11111111111111111111111111111');\n\nvar _class2;\n\n/**\n * Address of the stake config account which configures the rate\n * of stake warmup and cooldown as well as the slashing penalty.\n */\nconst STAKE_CONFIG_ID = new PublicKey('StakeConfig11111111111111111111111111111111');\n\n/**\n * Stake account authority info\n */\nclass Authorized {\n /**\n * Create a new Authorized object\n * @param staker the stake authority\n * @param withdrawer the withdraw authority\n */\n constructor(staker, withdrawer) {\n /** stake authority */\n this.staker = void 0;\n /** withdraw authority */\n this.withdrawer = void 0;\n this.staker = staker;\n this.withdrawer = withdrawer;\n }\n}\n/**\n * Stake account lockup info\n */\nclass Lockup {\n /**\n * Create a new Lockup object\n */\n constructor(unixTimestamp, epoch, custodian) {\n /** Unix timestamp of lockup expiration */\n this.unixTimestamp = void 0;\n /** Epoch of lockup expiration */\n this.epoch = void 0;\n /** Lockup custodian authority */\n this.custodian = void 0;\n this.unixTimestamp = unixTimestamp;\n this.epoch = epoch;\n this.custodian = custodian;\n }\n\n /**\n * Default, inactive Lockup value\n */\n}\n_class2 = Lockup;\nLockup.default = new _class2(0, 0, PublicKey.default);\n/**\n * Create stake account transaction params\n */\n/**\n * Create stake account with seed transaction params\n */\n/**\n * Initialize stake instruction params\n */\n/**\n * Delegate stake instruction params\n */\n/**\n * Authorize stake instruction params\n */\n/**\n * Authorize stake instruction params using a derived key\n */\n/**\n * Split stake instruction params\n */\n/**\n * Split with seed transaction params\n */\n/**\n * Withdraw stake instruction params\n */\n/**\n * Deactivate stake instruction params\n */\n/**\n * Merge stake instruction params\n */\n/**\n * Stake Instruction class\n */\nclass StakeInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a stake instruction and retrieve the instruction type.\n */\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n for (const [ixType, layout] of Object.entries(STAKE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n if (!type) {\n throw new Error('Instruction type incorrect; not a StakeInstruction');\n }\n return type;\n }\n\n /**\n * Decode a initialize stake instruction and retrieve the instruction params.\n */\n static decodeInitialize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n authorized,\n lockup\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Initialize, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorized: new Authorized(new PublicKey(authorized.staker), new PublicKey(authorized.withdrawer)),\n lockup: new Lockup(lockup.unixTimestamp, lockup.epoch, new PublicKey(lockup.custodian))\n };\n }\n\n /**\n * Decode a delegate stake instruction and retrieve the instruction params.\n */\n static decodeDelegate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 6);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Delegate, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n votePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[5].pubkey\n };\n }\n\n /**\n * Decode an authorize stake instruction and retrieve the instruction params.\n */\n static decodeAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n newAuthorized,\n stakeAuthorizationType\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Authorize, instruction.data);\n const o = {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType\n }\n };\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n return o;\n }\n\n /**\n * Decode an authorize-with-seed stake instruction and retrieve the instruction params.\n */\n static decodeAuthorizeWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n newAuthorized,\n stakeAuthorizationType,\n authoritySeed,\n authorityOwner\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data);\n const o = {\n stakePubkey: instruction.keys[0].pubkey,\n authorityBase: instruction.keys[1].pubkey,\n authoritySeed: authoritySeed,\n authorityOwner: new PublicKey(authorityOwner),\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType\n }\n };\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n return o;\n }\n\n /**\n * Decode a split stake instruction and retrieve the instruction params.\n */\n static decodeSplit(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n lamports\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Split, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n splitStakePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n lamports\n };\n }\n\n /**\n * Decode a merge stake instruction and retrieve the instruction params.\n */\n static decodeMerge(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Merge, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n sourceStakePubKey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey\n };\n }\n\n /**\n * Decode a withdraw stake instruction and retrieve the instruction params.\n */\n static decodeWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n const {\n lamports\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data);\n const o = {\n stakePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports\n };\n if (instruction.keys.length > 5) {\n o.custodianPubkey = instruction.keys[5].pubkey;\n }\n return o;\n }\n\n /**\n * Decode a deactivate stake instruction and retrieve the instruction params.\n */\n static decodeDeactivate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Deactivate, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId) {\n if (!programId.equals(StakeProgram.programId)) {\n throw new Error('invalid instruction; programId is not StakeProgram');\n }\n }\n\n /**\n * @internal\n */\n static checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n}\n\n/**\n * An enumeration of valid StakeInstructionType's\n */\n\n/**\n * An enumeration of valid stake InstructionType's\n * @internal\n */\nconst STAKE_INSTRUCTION_LAYOUTS = Object.freeze({\n Initialize: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), authorized(), lockup()])\n },\n Authorize: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('newAuthorized'), BufferLayout.u32('stakeAuthorizationType')])\n },\n Delegate: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n Split: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n Withdraw: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n Deactivate: {\n index: 5,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n Merge: {\n index: 7,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n AuthorizeWithSeed: {\n index: 8,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('newAuthorized'), BufferLayout.u32('stakeAuthorizationType'), rustString('authoritySeed'), publicKey('authorityOwner')])\n }\n});\n\n/**\n * Stake authorization type\n */\n\n/**\n * An enumeration of valid StakeAuthorizationLayout's\n */\nconst StakeAuthorizationLayout = Object.freeze({\n Staker: {\n index: 0\n },\n Withdrawer: {\n index: 1\n }\n});\n\n/**\n * Factory class for transactions to interact with the Stake program\n */\nclass StakeProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the Stake program\n */\n\n /**\n * Generate an Initialize instruction to add to a Stake Create transaction\n */\n static initialize(params) {\n const {\n stakePubkey,\n authorized,\n lockup: maybeLockup\n } = params;\n const lockup = maybeLockup || Lockup.default;\n const type = STAKE_INSTRUCTION_LAYOUTS.Initialize;\n const data = encodeData(type, {\n authorized: {\n staker: toBuffer(authorized.staker.toBuffer()),\n withdrawer: toBuffer(authorized.withdrawer.toBuffer())\n },\n lockup: {\n unixTimestamp: lockup.unixTimestamp,\n epoch: lockup.epoch,\n custodian: toBuffer(lockup.custodian.toBuffer())\n }\n });\n const instructionData = {\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate a Transaction that creates a new Stake account at\n * an address generated with `from`, a seed, and the Stake programId\n */\n static createAccountWithSeed(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n const {\n stakePubkey,\n authorized,\n lockup\n } = params;\n return transaction.add(this.initialize({\n stakePubkey,\n authorized,\n lockup\n }));\n }\n\n /**\n * Generate a Transaction that creates a new Stake account\n */\n static createAccount(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n const {\n stakePubkey,\n authorized,\n lockup\n } = params;\n return transaction.add(this.initialize({\n stakePubkey,\n authorized,\n lockup\n }));\n }\n\n /**\n * Generate a Transaction that delegates Stake tokens to a validator\n * Vote PublicKey. This transaction can also be used to redelegate Stake\n * to a new validator Vote PublicKey.\n */\n static delegate(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n votePubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Delegate;\n const data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: votePubkey,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: STAKE_CONFIG_ID,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n static authorize(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n newAuthorizedPubkey,\n stakeAuthorizationType,\n custodianPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Authorize;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index\n });\n const keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n static authorizeWithSeed(params) {\n const {\n stakePubkey,\n authorityBase,\n authoritySeed,\n authorityOwner,\n newAuthorizedPubkey,\n stakeAuthorizationType,\n custodianPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index,\n authoritySeed: authoritySeed,\n authorityOwner: toBuffer(authorityOwner.toBuffer())\n });\n const keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorityBase,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }];\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * @internal\n */\n static splitInstruction(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n lamports\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Split;\n const data = encodeData(type, {\n lamports\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: splitStakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a Transaction that splits Stake tokens into another stake account\n */\n static split(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.authorizedPubkey,\n newAccountPubkey: params.splitStakePubkey,\n lamports: 0,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.splitInstruction(params));\n }\n\n /**\n * Generate a Transaction that splits Stake tokens into another account\n * derived from a base public key and seed\n */\n static splitWithSeed(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n basePubkey,\n seed,\n lamports\n } = params;\n const transaction = new Transaction();\n transaction.add(SystemProgram.allocate({\n accountPubkey: splitStakePubkey,\n basePubkey,\n seed,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.splitInstruction({\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n lamports\n }));\n }\n\n /**\n * Generate a Transaction that merges Stake accounts.\n */\n static merge(params) {\n const {\n stakePubkey,\n sourceStakePubKey,\n authorizedPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Merge;\n const data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: sourceStakePubKey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a Transaction that withdraws deactivated Stake tokens.\n */\n static withdraw(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n toPubkey,\n lamports,\n custodianPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Withdraw;\n const data = encodeData(type, {\n lamports\n });\n const keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a Transaction that deactivates Stake tokens.\n */\n static deactivate(params) {\n const {\n stakePubkey,\n authorizedPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Deactivate;\n const data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n}\nStakeProgram.programId = new PublicKey('Stake11111111111111111111111111111111111111');\n/**\n * Max space of a Stake account\n *\n * This is generated from the solana-stake-program StakeState struct as\n * `StakeState::size_of()`:\n * https://docs.rs/solana-stake-program/latest/solana_stake_program/stake_state/enum.StakeState.html\n */\nStakeProgram.space = 200;\n\n/**\n * Vote account info\n */\nclass VoteInit {\n /** [0, 100] */\n\n constructor(nodePubkey, authorizedVoter, authorizedWithdrawer, commission) {\n this.nodePubkey = void 0;\n this.authorizedVoter = void 0;\n this.authorizedWithdrawer = void 0;\n this.commission = void 0;\n this.nodePubkey = nodePubkey;\n this.authorizedVoter = authorizedVoter;\n this.authorizedWithdrawer = authorizedWithdrawer;\n this.commission = commission;\n }\n}\n\n/**\n * Create vote account transaction params\n */\n\n/**\n * InitializeAccount instruction params\n */\n\n/**\n * Authorize instruction params\n */\n\n/**\n * AuthorizeWithSeed instruction params\n */\n\n/**\n * Withdraw from vote account transaction params\n */\n\n/**\n * Vote Instruction class\n */\nclass VoteInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a vote instruction and retrieve the instruction type.\n */\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n for (const [ixType, layout] of Object.entries(VOTE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n if (!type) {\n throw new Error('Instruction type incorrect; not a VoteInstruction');\n }\n return type;\n }\n\n /**\n * Decode an initialize vote instruction and retrieve the instruction params.\n */\n static decodeInitializeAccount(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 4);\n const {\n voteInit\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.InitializeAccount, instruction.data);\n return {\n votePubkey: instruction.keys[0].pubkey,\n nodePubkey: instruction.keys[3].pubkey,\n voteInit: new VoteInit(new PublicKey(voteInit.nodePubkey), new PublicKey(voteInit.authorizedVoter), new PublicKey(voteInit.authorizedWithdrawer), voteInit.commission)\n };\n }\n\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n static decodeAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n newAuthorized,\n voteAuthorizationType\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Authorize, instruction.data);\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType\n }\n };\n }\n\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n static decodeAuthorizeWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n voteAuthorizeWithSeedArgs: {\n currentAuthorityDerivedKeyOwnerPubkey,\n currentAuthorityDerivedKeySeed,\n newAuthorized,\n voteAuthorizationType\n }\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data);\n return {\n currentAuthorityDerivedKeyBasePubkey: instruction.keys[2].pubkey,\n currentAuthorityDerivedKeyOwnerPubkey: new PublicKey(currentAuthorityDerivedKeyOwnerPubkey),\n currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType\n },\n votePubkey: instruction.keys[0].pubkey\n };\n }\n\n /**\n * Decode a withdraw instruction and retrieve the instruction params.\n */\n static decodeWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n lamports\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data);\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedWithdrawerPubkey: instruction.keys[2].pubkey,\n lamports,\n toPubkey: instruction.keys[1].pubkey\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId) {\n if (!programId.equals(VoteProgram.programId)) {\n throw new Error('invalid instruction; programId is not VoteProgram');\n }\n }\n\n /**\n * @internal\n */\n static checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n}\n\n/**\n * An enumeration of valid VoteInstructionType's\n */\n\n/** @internal */\n\nconst VOTE_INSTRUCTION_LAYOUTS = Object.freeze({\n InitializeAccount: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), voteInit()])\n },\n Authorize: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('newAuthorized'), BufferLayout.u32('voteAuthorizationType')])\n },\n Withdraw: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n AuthorizeWithSeed: {\n index: 10,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), voteAuthorizeWithSeedArgs()])\n }\n});\n\n/**\n * VoteAuthorize type\n */\n\n/**\n * An enumeration of valid VoteAuthorization layouts.\n */\nconst VoteAuthorizationLayout = Object.freeze({\n Voter: {\n index: 0\n },\n Withdrawer: {\n index: 1\n }\n});\n\n/**\n * Factory class for transactions to interact with the Vote program\n */\nclass VoteProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the Vote program\n */\n\n /**\n * Generate an Initialize instruction.\n */\n static initializeAccount(params) {\n const {\n votePubkey,\n nodePubkey,\n voteInit\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.InitializeAccount;\n const data = encodeData(type, {\n voteInit: {\n nodePubkey: toBuffer(voteInit.nodePubkey.toBuffer()),\n authorizedVoter: toBuffer(voteInit.authorizedVoter.toBuffer()),\n authorizedWithdrawer: toBuffer(voteInit.authorizedWithdrawer.toBuffer()),\n commission: voteInit.commission\n }\n });\n const instructionData = {\n keys: [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: nodePubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate a transaction that creates a new Vote account.\n */\n static createAccount(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.votePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.initializeAccount({\n votePubkey: params.votePubkey,\n nodePubkey: params.voteInit.nodePubkey,\n voteInit: params.voteInit\n }));\n }\n\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account.\n */\n static authorize(params) {\n const {\n votePubkey,\n authorizedPubkey,\n newAuthorizedPubkey,\n voteAuthorizationType\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.Authorize;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index\n });\n const keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account\n * where the current Voter or Withdrawer authority is a derived key.\n */\n static authorizeWithSeed(params) {\n const {\n currentAuthorityDerivedKeyBasePubkey,\n currentAuthorityDerivedKeyOwnerPubkey,\n currentAuthorityDerivedKeySeed,\n newAuthorizedPubkey,\n voteAuthorizationType,\n votePubkey\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n const data = encodeData(type, {\n voteAuthorizeWithSeedArgs: {\n currentAuthorityDerivedKeyOwnerPubkey: toBuffer(currentAuthorityDerivedKeyOwnerPubkey.toBuffer()),\n currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index\n }\n });\n const keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: currentAuthorityDerivedKeyBasePubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction to withdraw from a Vote account.\n */\n static withdraw(params) {\n const {\n votePubkey,\n authorizedWithdrawerPubkey,\n lamports,\n toPubkey\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.Withdraw;\n const data = encodeData(type, {\n lamports\n });\n const keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedWithdrawerPubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n\n /**\n * Generate a transaction to withdraw safely from a Vote account.\n *\n * This function was created as a safeguard for vote accounts running validators, `safeWithdraw`\n * checks that the withdraw amount will not exceed the specified balance while leaving enough left\n * to cover rent. If you wish to close the vote account by withdrawing the full amount, call the\n * `withdraw` method directly.\n */\n static safeWithdraw(params, currentVoteAccountBalance, rentExemptMinimum) {\n if (params.lamports > currentVoteAccountBalance - rentExemptMinimum) {\n throw new Error('Withdraw will leave vote account with insuffcient funds.');\n }\n return VoteProgram.withdraw(params);\n }\n}\nVoteProgram.programId = new PublicKey('Vote111111111111111111111111111111111111111');\n/**\n * Max space of a Vote account\n *\n * This is generated from the solana-vote-program VoteState struct as\n * `VoteState::size_of()`:\n * https://docs.rs/solana-vote-program/1.9.5/solana_vote_program/vote_state/struct.VoteState.html#method.size_of\n *\n * KEEP IN SYNC WITH `VoteState::size_of()` in https://github.com/solana-labs/solana/blob/a474cb24b9238f5edcc982f65c0b37d4a1046f7e/sdk/program/src/vote/state/mod.rs#L340-L342\n */\nVoteProgram.space = 3731;\n\nconst VALIDATOR_INFO_KEY = new PublicKey('Va1idator1nfo111111111111111111111111111111');\n\n/**\n * @internal\n */\n\n/**\n * Info used to identity validators.\n */\n\nconst InfoString = type({\n name: string(),\n website: optional(string()),\n details: optional(string()),\n keybaseUsername: optional(string())\n});\n\n/**\n * ValidatorInfo class\n */\nclass ValidatorInfo {\n /**\n * Construct a valid ValidatorInfo\n *\n * @param key validator public key\n * @param info validator information\n */\n constructor(key, info) {\n /**\n * validator public key\n */\n this.key = void 0;\n /**\n * validator information\n */\n this.info = void 0;\n this.key = key;\n this.info = info;\n }\n\n /**\n * Deserialize ValidatorInfo from the config account data. Exactly two config\n * keys are required in the data.\n *\n * @param buffer config account data\n * @return null if info was not found\n */\n static fromConfigData(buffer) {\n let byteArray = [...buffer];\n const configKeyCount = decodeLength(byteArray);\n if (configKeyCount !== 2) return null;\n const configKeys = [];\n for (let i = 0; i < 2; i++) {\n const publicKey = new PublicKey(byteArray.slice(0, PUBLIC_KEY_LENGTH));\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n const isSigner = byteArray.slice(0, 1)[0] === 1;\n byteArray = byteArray.slice(1);\n configKeys.push({\n publicKey,\n isSigner\n });\n }\n if (configKeys[0].publicKey.equals(VALIDATOR_INFO_KEY)) {\n if (configKeys[1].isSigner) {\n const rawInfo = rustString().decode(Buffer.from(byteArray));\n const info = JSON.parse(rawInfo);\n assert$1(info, InfoString);\n return new ValidatorInfo(configKeys[1].publicKey, info);\n }\n }\n return null;\n }\n}\n\nconst VOTE_PROGRAM_ID = new PublicKey('Vote111111111111111111111111111111111111111');\n\n/**\n * History of how many credits earned by the end of each epoch\n */\n\n/**\n * See https://github.com/solana-labs/solana/blob/8a12ed029cfa38d4a45400916c2463fb82bbec8c/programs/vote_api/src/vote_state.rs#L68-L88\n *\n * @internal\n */\nconst VoteAccountLayout = BufferLayout.struct([publicKey('nodePubkey'), publicKey('authorizedWithdrawer'), BufferLayout.u8('commission'), BufferLayout.nu64(),\n// votes.length\nBufferLayout.seq(BufferLayout.struct([BufferLayout.nu64('slot'), BufferLayout.u32('confirmationCount')]), BufferLayout.offset(BufferLayout.u32(), -8), 'votes'), BufferLayout.u8('rootSlotValid'), BufferLayout.nu64('rootSlot'), BufferLayout.nu64(),\n// authorizedVoters.length\nBufferLayout.seq(BufferLayout.struct([BufferLayout.nu64('epoch'), publicKey('authorizedVoter')]), BufferLayout.offset(BufferLayout.u32(), -8), 'authorizedVoters'), BufferLayout.struct([BufferLayout.seq(BufferLayout.struct([publicKey('authorizedPubkey'), BufferLayout.nu64('epochOfLastAuthorizedSwitch'), BufferLayout.nu64('targetEpoch')]), 32, 'buf'), BufferLayout.nu64('idx'), BufferLayout.u8('isEmpty')], 'priorVoters'), BufferLayout.nu64(),\n// epochCredits.length\nBufferLayout.seq(BufferLayout.struct([BufferLayout.nu64('epoch'), BufferLayout.nu64('credits'), BufferLayout.nu64('prevCredits')]), BufferLayout.offset(BufferLayout.u32(), -8), 'epochCredits'), BufferLayout.struct([BufferLayout.nu64('slot'), BufferLayout.nu64('timestamp')], 'lastTimestamp')]);\n/**\n * VoteAccount class\n */\nclass VoteAccount {\n /**\n * @internal\n */\n constructor(args) {\n this.nodePubkey = void 0;\n this.authorizedWithdrawer = void 0;\n this.commission = void 0;\n this.rootSlot = void 0;\n this.votes = void 0;\n this.authorizedVoters = void 0;\n this.priorVoters = void 0;\n this.epochCredits = void 0;\n this.lastTimestamp = void 0;\n this.nodePubkey = args.nodePubkey;\n this.authorizedWithdrawer = args.authorizedWithdrawer;\n this.commission = args.commission;\n this.rootSlot = args.rootSlot;\n this.votes = args.votes;\n this.authorizedVoters = args.authorizedVoters;\n this.priorVoters = args.priorVoters;\n this.epochCredits = args.epochCredits;\n this.lastTimestamp = args.lastTimestamp;\n }\n\n /**\n * Deserialize VoteAccount from the account data.\n *\n * @param buffer account data\n * @return VoteAccount\n */\n static fromAccountData(buffer) {\n const versionOffset = 4;\n const va = VoteAccountLayout.decode(toBuffer(buffer), versionOffset);\n let rootSlot = va.rootSlot;\n if (!va.rootSlotValid) {\n rootSlot = null;\n }\n return new VoteAccount({\n nodePubkey: new PublicKey(va.nodePubkey),\n authorizedWithdrawer: new PublicKey(va.authorizedWithdrawer),\n commission: va.commission,\n votes: va.votes,\n rootSlot,\n authorizedVoters: va.authorizedVoters.map(parseAuthorizedVoter),\n priorVoters: getPriorVoters(va.priorVoters),\n epochCredits: va.epochCredits,\n lastTimestamp: va.lastTimestamp\n });\n }\n}\nfunction parseAuthorizedVoter({\n authorizedVoter,\n epoch\n}) {\n return {\n epoch,\n authorizedVoter: new PublicKey(authorizedVoter)\n };\n}\nfunction parsePriorVoters({\n authorizedPubkey,\n epochOfLastAuthorizedSwitch,\n targetEpoch\n}) {\n return {\n authorizedPubkey: new PublicKey(authorizedPubkey),\n epochOfLastAuthorizedSwitch,\n targetEpoch\n };\n}\nfunction getPriorVoters({\n buf,\n idx,\n isEmpty\n}) {\n if (isEmpty) {\n return [];\n }\n return [...buf.slice(idx + 1).map(parsePriorVoters), ...buf.slice(0, idx).map(parsePriorVoters)];\n}\n\nconst endpoint = {\n http: {\n devnet: 'http://api.devnet.solana.com',\n testnet: 'http://api.testnet.solana.com',\n 'mainnet-beta': 'http://api.mainnet-beta.solana.com/'\n },\n https: {\n devnet: 'https://api.devnet.solana.com',\n testnet: 'https://api.testnet.solana.com',\n 'mainnet-beta': 'https://api.mainnet-beta.solana.com/'\n }\n};\n/**\n * Retrieves the RPC API URL for the specified cluster\n * @param {Cluster} [cluster=\"devnet\"] - The cluster name of the RPC API URL to use. Possible options: 'devnet' | 'testnet' | 'mainnet-beta'\n * @param {boolean} [tls=\"http\"] - Use TLS when connecting to cluster.\n *\n * @returns {string} URL string of the RPC endpoint\n */\nfunction clusterApiUrl(cluster, tls) {\n const key = tls === false ? 'http' : 'https';\n if (!cluster) {\n return endpoint[key]['devnet'];\n }\n const url = endpoint[key][cluster];\n if (!url) {\n throw new Error(`Unknown ${key} cluster: ${cluster}`);\n }\n return url;\n}\n\n/**\n * Send and confirm a raw transaction\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Buffer} rawTransaction\n * @param {TransactionConfirmationStrategy} confirmationStrategy\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\n\n/**\n * @deprecated Calling `sendAndConfirmRawTransaction()` without a `confirmationStrategy`\n * is no longer supported and will be removed in a future version.\n */ // eslint-disable-next-line no-redeclare\n// eslint-disable-next-line no-redeclare\nasync function sendAndConfirmRawTransaction(connection, rawTransaction, confirmationStrategyOrConfirmOptions, maybeConfirmOptions) {\n let confirmationStrategy;\n let options;\n if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, 'lastValidBlockHeight')) {\n confirmationStrategy = confirmationStrategyOrConfirmOptions;\n options = maybeConfirmOptions;\n } else if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, 'nonceValue')) {\n confirmationStrategy = confirmationStrategyOrConfirmOptions;\n options = maybeConfirmOptions;\n } else {\n options = confirmationStrategyOrConfirmOptions;\n }\n const sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n minContextSlot: options.minContextSlot\n };\n const signature = await connection.sendRawTransaction(rawTransaction, sendOptions);\n const commitment = options && options.commitment;\n const confirmationPromise = confirmationStrategy ? connection.confirmTransaction(confirmationStrategy, commitment) : connection.confirmTransaction(signature, commitment);\n const status = (await confirmationPromise).value;\n if (status.err) {\n throw new Error(`Raw transaction ${signature} failed (${JSON.stringify(status)})`);\n }\n return signature;\n}\n\n/**\n * There are 1-billion lamports in one SOL\n */\nconst LAMPORTS_PER_SOL = 1000000000;\n\nexport { Account, AddressLookupTableAccount, AddressLookupTableInstruction, AddressLookupTableProgram, Authorized, BLOCKHASH_CACHE_TIMEOUT_MS, BPF_LOADER_DEPRECATED_PROGRAM_ID, BPF_LOADER_PROGRAM_ID, BpfLoader, COMPUTE_BUDGET_INSTRUCTION_LAYOUTS, ComputeBudgetInstruction, ComputeBudgetProgram, Connection, Ed25519Program, Enum, EpochSchedule, FeeCalculatorLayout, Keypair, LAMPORTS_PER_SOL, LOOKUP_TABLE_INSTRUCTION_LAYOUTS, Loader, Lockup, MAX_SEED_LENGTH, Message, MessageAccountKeys, MessageV0, NONCE_ACCOUNT_LENGTH, NonceAccount, PACKET_DATA_SIZE, PUBLIC_KEY_LENGTH, PublicKey, SIGNATURE_LENGTH_IN_BYTES, SOLANA_SCHEMA, STAKE_CONFIG_ID, STAKE_INSTRUCTION_LAYOUTS, SYSTEM_INSTRUCTION_LAYOUTS, SYSVAR_CLOCK_PUBKEY, SYSVAR_EPOCH_SCHEDULE_PUBKEY, SYSVAR_INSTRUCTIONS_PUBKEY, SYSVAR_RECENT_BLOCKHASHES_PUBKEY, SYSVAR_RENT_PUBKEY, SYSVAR_REWARDS_PUBKEY, SYSVAR_SLOT_HASHES_PUBKEY, SYSVAR_SLOT_HISTORY_PUBKEY, SYSVAR_STAKE_HISTORY_PUBKEY, Secp256k1Program, SendTransactionError, SolanaJSONRPCError, SolanaJSONRPCErrorCode, StakeAuthorizationLayout, StakeInstruction, StakeProgram, Struct, SystemInstruction, SystemProgram, Transaction, TransactionExpiredBlockheightExceededError, TransactionExpiredNonceInvalidError, TransactionExpiredTimeoutError, TransactionInstruction, TransactionMessage, TransactionStatus, VALIDATOR_INFO_KEY, VERSION_PREFIX_MASK, VOTE_PROGRAM_ID, ValidatorInfo, VersionedMessage, VersionedTransaction, VoteAccount, VoteAuthorizationLayout, VoteInit, VoteInstruction, VoteProgram, clusterApiUrl, sendAndConfirmRawTransaction, sendAndConfirmTransaction };\n//# sourceMappingURL=index.browser.esm.js.map\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = new Uint8Array(zeroes + (size - it4))\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet converter;\n/**\n * Convert a little-endian buffer into a BigInt.\n * @param buf The little-endian buffer to convert\n * @returns A BigInt with the little-endian representation of buf.\n */\nfunction toBigIntLE(buf) {\n {\n const reversed = Buffer.from(buf);\n reversed.reverse();\n const hex = reversed.toString('hex');\n if (hex.length === 0) {\n return BigInt(0);\n }\n return BigInt(`0x${hex}`);\n }\n return converter.toBigInt(buf, false);\n}\nexports.toBigIntLE = toBigIntLE;\n/**\n * Convert a big-endian buffer into a BigInt\n * @param buf The big-endian buffer to convert.\n * @returns A BigInt with the big-endian representation of buf.\n */\nfunction toBigIntBE(buf) {\n {\n const hex = buf.toString('hex');\n if (hex.length === 0) {\n return BigInt(0);\n }\n return BigInt(`0x${hex}`);\n }\n return converter.toBigInt(buf, true);\n}\nexports.toBigIntBE = toBigIntBE;\n/**\n * Convert a BigInt to a little-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A little-endian buffer representation of num.\n */\nfunction toBufferLE(num, width) {\n {\n const hex = num.toString(16);\n const buffer = Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n buffer.reverse();\n return buffer;\n }\n // Allocation is done here, since it is slower using napi in C\n return converter.fromBigInt(num, Buffer.allocUnsafe(width), false);\n}\nexports.toBufferLE = toBufferLE;\n/**\n * Convert a BigInt to a big-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A big-endian buffer representation of num.\n */\nfunction toBufferBE(num, width) {\n {\n const hex = num.toString(16);\n return Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n }\n return converter.fromBigInt(num, Buffer.allocUnsafe(width), true);\n}\nexports.toBufferBE = toBufferBE;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nconst textDecoder = new ResolvedTextDecoder(\"utf-8\", { fatal: true });\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n value = Buffer.from(value, \"utf8\");\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([\n Buffer.from(this.buf.subarray(0, this.length)),\n buffer,\n Buffer.alloc(INITIAL_LENGTH),\n ]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, \"utf8\");\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n throw new BorshError(\"Reached the end of buffer when deserializing\");\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, \"le\");\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, \"le\");\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, \"le\");\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, \"le\");\n }\n readBuffer(len) {\n if (this.offset + len > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === \"string\") {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n if (value.length !== fieldType[1]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n }\n for (let i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n }\n else {\n writer.writeArray(value, (item) => {\n serializeField(schema, fieldName, item, fieldType[0], writer);\n });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case \"option\": {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n case \"map\": {\n writer.writeU32(value.size);\n value.forEach((val, key) => {\n serializeField(schema, fieldName, key, fieldType.key, writer);\n serializeField(schema, fieldName, val, fieldType.value, writer);\n });\n break;\n }\n default:\n throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === \"function\") {\n obj.borshSerialize(writer);\n return;\n }\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === \"enum\") {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n const writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === \"string\") {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n return reader.readFixedArray(fieldType[0]);\n }\n else if (typeof fieldType[1] === \"number\") {\n const arr = [];\n for (let i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n return arr;\n }\n else {\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n }\n if (fieldType.kind === \"option\") {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n if (fieldType.kind === \"map\") {\n let map = new Map();\n const length = reader.readU32();\n for (let i = 0; i < length; i++) {\n const key = deserializeField(schema, fieldName, fieldType.key, reader);\n const val = deserializeField(schema, fieldName, fieldType.value, reader);\n map.set(key, val);\n }\n return map;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === \"function\") {\n return classType.borshDeserialize(reader);\n }\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === \"enum\") {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","const basex = require('base-x')\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n",";(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*!\r\n * decimal.js v10.4.3\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\n var EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n Decimal, inexact, noConflict, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\n P.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\n P.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\n P.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\n P.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\n P.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\n P.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\n P.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\n P.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\n P.inverseCosine = P.acos = function () {\r\n var halfPi,\r\n x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.asin();\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return halfPi.minus(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\n P.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\n P.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\n P.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\n P.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\n P.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\n P.isFinite = function () {\r\n return !!this.d;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\n P.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\n P.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\n P.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\n P.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\n function checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n // Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n // Eg. convertBase('255', 10, 16) returns [15, 15].\r\n // Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\n function convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n\r\n /*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Perform division in the specified base.\r\n */\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n }\r\n\r\n\r\n function getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n }\r\n\r\n\r\n function getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\n function intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n }\r\n\r\n\r\n function isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n }\r\n\r\n\r\n /*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\r\n function maxOrMin(Ctor, args, ltgt) {\r\n var y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n } else if (x[ltgt](y)) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\n function naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\n function naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n // ±Infinity, NaN.\r\n function nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\n function parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\n function taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n }\r\n\r\n\r\n // Exponent e must be positive and non-zero.\r\n function tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n }\r\n\r\n\r\n // Return the absolute value of `x` reduced to less than or equal to half pi.\r\n function toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\n function toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function abs(x) {\r\n return new this(x).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function acos(x) {\r\n return new this(x).acos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function acosh(x) {\r\n return new this(x).acosh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function add(x, y) {\r\n return new this(x).plus(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function asin(x) {\r\n return new this(x).asin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function asinh(x) {\r\n return new this(x).asinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function atan(x) {\r\n return new this(x).atan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function atanh(x) {\r\n return new this(x).atanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\n function atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function cbrt(x) {\r\n return new this(x).cbrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|Decimal}\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\n function clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cos(x) {\r\n return new this(x).cos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cosh(x) {\r\n return new this(x).cosh();\r\n }\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n\r\n // Infinity, NaN.\r\n } else if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n\r\n } else if (t !== 'string') {\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n // Minus sign?\r\n if ((i = v.charCodeAt(0)) === 45) {\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n // Plus sign?\r\n if (i === 43) v = v.slice(1);\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function div(x, y) {\r\n return new this(x).div(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\n function exp(x) {\r\n return new this(x).exp();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\n function isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ln(x) {\r\n return new this(x).ln();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n function log(x, y) {\r\n return new this(x).log(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log2(x) {\r\n return new this(x).log(2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log10(x) {\r\n return new this(x).log(10);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function max() {\r\n return maxOrMin(this, arguments, 'lt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function min() {\r\n return maxOrMin(this, arguments, 'gt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mod(x, y) {\r\n return new this(x).mod(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mul(x, y) {\r\n return new this(x).mul(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\r\n function pow(x, y) {\r\n return new this(x).pow(y);\r\n }\r\n\r\n\r\n /*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\n function random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sin(x) {\r\n return new this(x).sin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sinh(x) {\r\n return new this(x).sinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sqrt(x) {\r\n return new this(x).sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function sub(x, y) {\r\n return new this(x).sub(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tan(x) {\r\n return new this(x).tan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tanh(x) {\r\n return new this(x).tanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(DEFAULTS);\r\n Decimal.prototype.constructor = Decimal;\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Create the internal constants from their string values.\r\n LN10 = new Decimal(LN10);\r\n PI = new Decimal(PI);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n if (typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol') {\r\n P[Symbol['for']('nodejs.util.inspect.custom')] = P.toString;\r\n P[Symbol.toStringTag] = 'Decimal';\r\n }\r\n\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self ? self : window;\r\n }\r\n\r\n noConflict = globalScope.Decimal;\r\n Decimal.noConflict = function () {\r\n globalScope.Decimal = noConflict;\r\n return Decimal;\r\n };\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","var keyList = Object.keys;\n\nexports.equal = function equal (a, b) {\n if (a === b) return true;\n if (!(a instanceof Object) || !(b instanceof Object)) return false;\n\n var keys = keyList(a);\n var length = keys.length;\n\n for (var i = 0; i < length; i++)\n if (!(keys[i] in b)) return false;\n\n for (var i = 0; i < length; i++)\n if (a[keys[i]] !== b[keys[i]]) return false;\n\n return length === keyList(b).length;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\nconst uuid = require('uuid').v4;\nconst generateRequest = require('../../generateRequest');\n\n/**\n * Constructor for a Jayson Browser Client that does not depend any node.js core libraries\n * @class ClientBrowser\n * @param {Function} callServer Method that calls the server, receives the stringified request and a regular node-style callback\n * @param {Object} [options]\n * @param {Function} [options.reviver] Reviver function for JSON\n * @param {Function} [options.replacer] Replacer function for JSON\n * @param {Number} [options.version=2] JSON-RPC version to use (1|2)\n * @param {Function} [options.generator] Function to use for generating request IDs\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @return {ClientBrowser}\n */\nconst ClientBrowser = function(callServer, options) {\n if(!(this instanceof ClientBrowser)) {\n return new ClientBrowser(callServer, options);\n }\n\n if (!options) {\n options = {};\n }\n\n this.options = {\n reviver: typeof options.reviver !== 'undefined' ? options.reviver : null,\n replacer: typeof options.replacer !== 'undefined' ? options.replacer : null,\n generator: typeof options.generator !== 'undefined' ? options.generator : function() { return uuid(); },\n version: typeof options.version !== 'undefined' ? options.version : 2,\n notificationIdNull: typeof options.notificationIdNull === 'boolean' ? options.notificationIdNull : false,\n };\n\n this.callServer = callServer;\n};\n\nmodule.exports = ClientBrowser;\n\n/**\n * Creates a request and dispatches it if given a callback.\n * @param {String|Array} method A batch request if passed an Array, or a method name if passed a String\n * @param {Array|Object} [params] Parameters for the method\n * @param {String|Number} [id] Optional id. If undefined an id will be generated. If null it creates a notification request\n * @param {Function} [callback] Request callback. If specified, executes the request rather than only returning it.\n * @throws {TypeError} Invalid parameters\n * @return {Object} JSON-RPC 1.0 or 2.0 compatible request\n */\nClientBrowser.prototype.request = function(method, params, id, callback) {\n const self = this;\n let request = null;\n\n // is this a batch request?\n const isBatch = Array.isArray(method) && typeof params === 'function';\n\n if (this.options.version === 1 && isBatch) {\n throw new TypeError('JSON-RPC 1.0 does not support batching');\n }\n\n // is this a raw request?\n const isRaw = !isBatch && method && typeof method === 'object' && typeof params === 'function';\n\n if(isBatch || isRaw) {\n callback = params;\n request = method;\n } else {\n if(typeof id === 'function') {\n callback = id;\n // specifically undefined because \"null\" is a notification request\n id = undefined;\n }\n\n const hasCallback = typeof callback === 'function';\n\n try {\n request = generateRequest(method, params, id, {\n generator: this.options.generator,\n version: this.options.version,\n notificationIdNull: this.options.notificationIdNull,\n });\n } catch(err) {\n if(hasCallback) {\n return callback(err);\n }\n throw err;\n }\n\n // no callback means we should just return a raw request\n if(!hasCallback) {\n return request;\n }\n\n }\n\n let message;\n try {\n message = JSON.stringify(request, this.options.replacer);\n } catch(err) {\n return callback(err);\n }\n\n this.callServer(message, function(err, response) {\n self._parseResponse(err, response, callback);\n });\n\n // always return the raw request\n return request;\n};\n\n/**\n * Parses a response from a server\n * @param {Object} err Error to pass on that is unrelated to the actual response\n * @param {String} responseText JSON-RPC 1.0 or 2.0 response\n * @param {Function} callback Callback that will receive different arguments depending on the amount of parameters\n * @private\n */\nClientBrowser.prototype._parseResponse = function(err, responseText, callback) {\n if(err) {\n callback(err);\n return;\n }\n\n if(!responseText) {\n // empty response text, assume that is correct because it could be a\n // notification which jayson does not give any body for\n return callback();\n }\n\n let response;\n try {\n response = JSON.parse(responseText, this.options.reviver);\n } catch(err) {\n return callback(err);\n }\n\n if(callback.length === 3) {\n // if callback length is 3, we split callback arguments on error and response\n\n // is batch response?\n if(Array.isArray(response)) {\n\n // neccesary to split strictly on validity according to spec here\n const isError = function(res) {\n return typeof res.error !== 'undefined';\n };\n\n const isNotError = function (res) {\n return !isError(res);\n };\n\n return callback(null, response.filter(isError), response.filter(isNotError));\n \n } else {\n\n // split regardless of validity\n return callback(null, response.error, response.result);\n \n }\n \n }\n\n callback(null, response);\n};\n","'use strict';\n\nconst uuid = require('uuid').v4;\n\n/**\n * Generates a JSON-RPC 1.0 or 2.0 request\n * @param {String} method Name of method to call\n * @param {Array|Object} params Array of parameters passed to the method as specified, or an object of parameter names and corresponding value\n * @param {String|Number|null} [id] Request ID can be a string, number, null for explicit notification or left out for automatic generation\n * @param {Object} [options]\n * @param {Number} [options.version=2] JSON-RPC version to use (1 or 2)\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @param {Function} [options.generator] Passed the request, and the options object and is expected to return a request ID\n * @throws {TypeError} If any of the parameters are invalid\n * @return {Object} A JSON-RPC 1.0 or 2.0 request\n * @memberOf Utils\n */\nconst generateRequest = function(method, params, id, options) {\n if(typeof method !== 'string') {\n throw new TypeError(method + ' must be a string');\n }\n\n options = options || {};\n\n // check valid version provided\n const version = typeof options.version === 'number' ? options.version : 2;\n if (version !== 1 && version !== 2) {\n throw new TypeError(version + ' must be 1 or 2');\n }\n\n const request = {\n method: method\n };\n\n if(version === 2) {\n request.jsonrpc = '2.0';\n }\n\n if(params) {\n // params given, but invalid?\n if(typeof params !== 'object' && !Array.isArray(params)) {\n throw new TypeError(params + ' must be an object, array or omitted');\n }\n request.params = params;\n }\n\n // if id was left out, generate one (null means explicit notification)\n if(typeof(id) === 'undefined') {\n const generator = typeof options.generator === 'function' ? options.generator : function() { return uuid(); };\n request.id = generator(request, options);\n } else if (version === 2 && id === null) {\n // we have a version 2 notification\n if (options.notificationIdNull) {\n request.id = null; // id will not be set at all unless option provided\n }\n } else {\n request.id = id;\n }\n\n return request;\n};\n\nmodule.exports = generateRequest;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","(function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self,e.JSBI=t())})(this,function(){\"use strict\";var e=Math.imul,t=Math.clz32;function i(e){\"@babel/helpers - typeof\";return i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i(e)}function _(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e,t){for(var _,n=0;ne.length)&&(t=e.length);for(var _=0,n=Array(t);_=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(t){throw t},f:l}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var g,a=!0,u=!1;return{s:function(){_=_.call(e)},n:function(){var e=_.next();return a=e.done,e},e:function(t){u=!0,g=t},f:function(){try{a||null==_.return||_.return()}finally{if(u)throw g}}}}var S=function(e){var t=Math.abs,n=Math.max,o=Math.floor;function a(e,t){var i;if(_(this,a),i=u.call(this,e),i.sign=t,Object.setPrototypeOf(b(i),a.prototype),e>a.__kMaxLength)throw new RangeError(\"Maximum BigInt size exceeded\");return i}g(a,e);var u=c(a);return l(a,[{key:\"toDebugString\",value:function(){var e,t=[\"BigInt[\"],i=B(this);try{for(i.s();!(e=i.n()).done;){var _=e.value;t.push((_?(_>>>0).toString(16):_)+\", \")}}catch(e){i.e(e)}finally{i.f()}return t.push(\"]\"),t.join(\"\")}},{key:\"toString\",value:function(){var e=0e||36this.length&&(_=this.length);for(var n=32767&e,l=e>>>15,g=0,o=t,u=0;u<_;u++){var s=this.__digit(u),r=32767&s,d=s>>>15,h=a.__imul(r,n),b=a.__imul(r,l),m=a.__imul(d,n),c=a.__imul(d,l),v=o+h+g;g=v>>>30,v&=1073741823,v+=((32767&b)<<15)+((32767&m)<<15),g+=v>>>30,o=c+(b>>>15)+(m>>>15),this.__setDigit(u,1073741823&v)}if(0!==g||0!==o)throw new Error(\"implementation bug\")}},{key:\"__inplaceAdd\",value:function(e,t,_){for(var n,l=0,g=0;g<_;g++)n=this.__halfDigit(t+g)+e.__halfDigit(g)+l,l=n>>>15,this.__setHalfDigit(t+g,32767&n);return l}},{key:\"__inplaceSub\",value:function(e,t,_){var n=0;if(1&t){t>>=1;for(var l=this.__digit(t),g=32767&l,o=0;o<_-1>>>1;o++){var a=e.__digit(o),u=(l>>>15)-(32767&a)-n;n=1&u>>>15,this.__setDigit(t+o,(32767&u)<<15|32767&g),l=this.__digit(t+o+1),g=(32767&l)-(a>>>15)-n,n=1&g>>>15}var s=e.__digit(o),r=(l>>>15)-(32767&s)-n;n=1&r>>>15,this.__setDigit(t+o,(32767&r)<<15|32767&g);if(t+o+1>=this.length)throw new RangeError(\"out of bounds\");0==(1&_)&&(l=this.__digit(t+o+1),g=(32767&l)-(s>>>15)-n,n=1&g>>>15,this.__setDigit(t+e.length,1073709056&l|32767&g))}else{t>>=1;for(var d=0;d>>15;var c=(h>>>15)-(b>>>15)-n;n=1&c>>>15,this.__setDigit(t+d,(32767&c)<<15|32767&m)}var v=this.__digit(t+d),y=e.__digit(d),f=(32767&v)-(32767&y)-n;n=1&f>>>15;var D=0;0==(1&_)&&(D=(v>>>15)-(y>>>15)-n,n=1&D>>>15),this.__setDigit(t+d,(32767&D)<<15|32767&f)}return n}},{key:\"__inplaceRightShift\",value:function(e){if(0!==e){for(var t,_=this.__digit(0)>>>e,n=this.length-1,l=0;l>>e;this.__setDigit(n,_)}}},{key:\"__digit\",value:function(e){return this[e]}},{key:\"__unsignedDigit\",value:function(e){return this[e]>>>0}},{key:\"__setDigit\",value:function(e,t){this[e]=0|t}},{key:\"__setDigitGrow\",value:function(e,t){this[e]=0|t}},{key:\"__halfDigitLength\",value:function(){var e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}},{key:\"__halfDigit\",value:function(e){return 32767&this[e>>>1]>>>15*(1&e)}},{key:\"__setHalfDigit\",value:function(e,t){var i=e>>>1,_=this.__digit(i),n=1&e?32767&_|t<<15:1073709056&_|32767&t;this.__setDigit(i,n)}}],[{key:\"BigInt\",value:function(e){var t=Number.isFinite;if(\"number\"==typeof e){if(0===e)return a.__zero();if(a.__isOneDigitInt(e))return 0>e?a.__oneDigit(-e,!0):a.__oneDigit(e,!1);if(!t(e)||o(e)!==e)throw new RangeError(\"The number \"+e+\" cannot be converted to BigInt because it is not an integer\");return a.__fromDouble(e)}if(\"string\"==typeof e){var _=a.__fromString(e);if(null===_)throw new SyntaxError(\"Cannot convert \"+e+\" to a BigInt\");return _}if(\"boolean\"==typeof e)return!0===e?a.__oneDigit(1,!1):a.__zero();if(\"object\"===i(e)){if(e.constructor===a)return e;var n=a.__toPrimitive(e);return a.BigInt(n)}throw new TypeError(\"Cannot convert \"+e+\" to a BigInt\")}},{key:\"toNumber\",value:function(e){var t=e.length;if(0===t)return 0;if(1===t){var i=e.__unsignedDigit(0);return e.sign?-i:i}var _=e.__digit(t-1),n=a.__clz30(_),l=30*t-n;if(1024>>=12;var d=s-12,h=12<=s?0:o<<20+s,b=20+s;for(0>>30-d,h=o<>>30-b,b-=30;var m=a.__decideRounding(e,b,u,o);if((1===m||0===m&&1==(1&h))&&(h=h+1>>>0,0===h&&(r++,0!=r>>>20&&(r=0,g++,1023=a.__kMaxLengthBits)throw new RangeError(\"BigInt too big\");if(1===e.length&&2===e.__digit(0)){var _=1+(0|i/30),n=e.sign&&0!=(1&i),l=new a(_,n);l.__initializeDigits();var g=1<>=1;0!==i;i>>=1)u=a.multiply(u,u),0!=(1&i)&&(null===o?o=u:o=a.multiply(o,u));return o}},{key:\"multiply\",value:function(e,t){if(0===e.length)return e;if(0===t.length)return t;var _=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&_--;var n=new a(_,e.sign!==t.sign);n.__initializeDigits();for(var l=0;la.__absoluteCompare(e,t))return a.__zero();var i,_=e.sign!==t.sign,n=t.__unsignedDigit(0);if(1===t.length&&32767>=n){if(1===n)return _===e.sign?e:a.unaryMinus(e);i=a.__absoluteDivSmall(e,n,null)}else i=a.__absoluteDivLarge(e,t,!0,!1);return i.sign=_,i.__trim()}},{key:\"remainder\",value:function i(e,t){if(0===t.length)throw new RangeError(\"Division by zero\");if(0>a.__absoluteCompare(e,t))return e;var _=t.__unsignedDigit(0);if(1===t.length&&32767>=_){if(1===_)return a.__zero();var n=a.__absoluteModSmall(e,_);return 0===n?a.__zero():a.__oneDigit(n,e.sign)}var i=a.__absoluteDivLarge(e,t,!1,!0);return i.sign=e.sign,i.__trim()}},{key:\"add\",value:function(e,t){var i=e.sign;return i===t.sign?a.__absoluteAdd(e,t,i):0<=a.__absoluteCompare(e,t)?a.__absoluteSub(e,t,i):a.__absoluteSub(t,e,!i)}},{key:\"subtract\",value:function(e,t){var i=e.sign;return i===t.sign?0<=a.__absoluteCompare(e,t)?a.__absoluteSub(e,t,i):a.__absoluteSub(t,e,!i):a.__absoluteAdd(e,t,i)}},{key:\"leftShift\",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?a.__rightShiftByAbsolute(e,t):a.__leftShiftByAbsolute(e,t)}},{key:\"signedRightShift\",value:function(e,t){return 0===t.length||0===e.length?e:t.sign?a.__leftShiftByAbsolute(e,t):a.__rightShiftByAbsolute(e,t)}},{key:\"unsignedRightShift\",value:function(){throw new TypeError(\"BigInts have no unsigned right shift; use >> instead\")}},{key:\"lessThan\",value:function(e,t){return 0>a.__compareToBigInt(e,t)}},{key:\"lessThanOrEqual\",value:function(e,t){return 0>=a.__compareToBigInt(e,t)}},{key:\"greaterThan\",value:function(e,t){return 0e)throw new RangeError(\"Invalid value: not (convertible to) a safe integer\");if(0===e)return a.__zero();if(e>=a.__kMaxLengthBits)return t;var _=0|(e+29)/30;if(t.length<_)return t;var l=t.__unsignedDigit(_-1),g=1<<(e-1)%30;if(t.length===_&&le)throw new RangeError(\"Invalid value: not (convertible to) a safe integer\");if(0===e)return a.__zero();if(t.sign){if(e>a.__kMaxLengthBits)throw new RangeError(\"BigInt too big\");return a.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=a.__kMaxLengthBits)return t;var i=0|(e+29)/30;if(t.length>>_)return t}return a.__truncateToNBits(e,t)}},{key:\"ADD\",value:function(e,t){if(e=a.__toPrimitive(e),t=a.__toPrimitive(t),\"string\"==typeof e)return\"string\"!=typeof t&&(t=t.toString()),e+t;if(\"string\"==typeof t)return e.toString()+t;if(e=a.__toNumeric(e),t=a.__toNumeric(t),a.__isBigInt(e)&&a.__isBigInt(t))return a.add(e,t);if(\"number\"==typeof e&&\"number\"==typeof t)return e+t;throw new TypeError(\"Cannot mix BigInt and other types, use explicit conversions\")}},{key:\"LT\",value:function(e,t){return a.__compare(e,t,0)}},{key:\"LE\",value:function(e,t){return a.__compare(e,t,1)}},{key:\"GT\",value:function(e,t){return a.__compare(e,t,2)}},{key:\"GE\",value:function(e,t){return a.__compare(e,t,3)}},{key:\"EQ\",value:function(e,t){for(;;){if(a.__isBigInt(e))return a.__isBigInt(t)?a.equal(e,t):a.EQ(t,e);if(\"number\"==typeof e){if(a.__isBigInt(t))return a.__equalToNumber(t,e);if(\"object\"!==i(t))return e==t;t=a.__toPrimitive(t)}else if(\"string\"==typeof e){if(a.__isBigInt(t))return e=a.__fromString(e),null!==e&&a.equal(e,t);if(\"object\"!==i(t))return e==t;t=a.__toPrimitive(t)}else if(\"boolean\"==typeof e){if(a.__isBigInt(t))return a.__equalToNumber(t,+e);if(\"object\"!==i(t))return e==t;t=a.__toPrimitive(t)}else if(\"symbol\"===i(e)){if(a.__isBigInt(t))return!1;if(\"object\"!==i(t))return e==t;t=a.__toPrimitive(t)}else if(\"object\"===i(e)){if(\"object\"===i(t)&&t.constructor!==a)return e==t;e=a.__toPrimitive(e)}else return e==t}}},{key:\"NE\",value:function(e,t){return!a.EQ(e,t)}},{key:\"DataViewGetBigInt64\",value:function(e,t){var i=!!(2>>30),s.__setDigit(2,l>>>28),s.__trim()}},{key:\"DataViewSetBigInt64\",value:function(e,t,i){var _=!!(3>>2,2t)n=-t-1;else{if(0===i)return-1;i--,_=e.__digit(i),n=29}var l=1<>>20,_=i-1023,n=(0|_/30)+1,l=new a(n,0>e),g=1048575&a.__kBitConversionInts[1]|1048576,o=a.__kBitConversionInts[0],u=20,s=_%30,r=0;if(s>>d,g=g<<32-d|o>>>d,o<<=32-d}else if(s===u)r=32,t=g,g=o,o=0;else{var h=s-u;r=32-h,t=g<>>32-h,g=o<>>2,g=g<<30|o>>>2,o<<=30):t=0,l.__setDigit(b,t);return l.__trim()}},{key:\"__isWhitespace\",value:function(e){return!!(13>=e&&9<=e)||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?(e&=131071,10>=e||40==e||41==e||47==e||95==e||4096==e):65279==e)}},{key:\"__fromString\",value:function(e){var t=11073741824/o)return null;var s=o*g+u>>>a.__kBitsPerCharTableShift,r=new a(0|(s+29)/30,!1),h=10>t?t:10,b=10>=a.__kBitsPerCharTableShift;var c=[],v=[],y=!1;do{for(var f,D=0,p=0;;){if(f=void 0,l-48>>>0>>0>>0>>0>>a.__kBitsPerCharTableShift)/30;r.__inplaceMultiplyAdd(I,C,m)}while(!k)}if(n!==_){if(!a.__isWhitespace(l))return null;for(n++;n<_;n++)if(l=e.charCodeAt(n),!a.__isWhitespace(l))return null}return r.sign=-1===i,r.__trim()}},{key:\"__fillFromParts\",value:function(e,t,_){for(var n=0,l=0,g=0,o=t.length-1;0<=o;o--){var a=t[o],u=_[o];l|=a<>>u-g)}if(0!==l){if(n>=e.length)throw new Error(\"implementation bug\");e.__setDigit(n++,l)}for(;n>>1)+(85&n),n=(51&n>>>2)+(51&n),n=(15&n>>>4)+(15&n);var l=n,g=t-1,o=e.__digit(_-1),u=a.__clz30(o),s=0|(30*_-u+l-1)/l;if(e.sign&&s++,268435456>>y,b=30-y;b>=l;)r[d--]=a.__kConversionChars[h&g],h>>>=l,b-=l}var f=(h|o<>>l-b;0!==h;)r[d--]=a.__kConversionChars[h&g],h>>>=l;if(e.sign&&(r[d--]=\"-\"),-1!==d)throw new Error(\"implementation bug\");return r.join(\"\")}},{key:\"__toStringGeneric\",value:function(e,t,_){var n=e.length;if(0===n)return\"\";if(1===n){var l=e.__unsignedDigit(0).toString(t);return!1===_&&e.sign&&(l=\"-\"+l),l}var g=30*n-a.__clz30(e.__digit(n-1)),o=a.__kMaxBitsPerChar[t],u=o-1,s=g*a.__kBitsPerCharTableMultiplier;s+=u-1,s=0|s/u;var r,d,h=s+1>>1,b=a.exponentiate(a.__oneDigit(t,!1),a.__oneDigit(h,!1)),m=b.__unsignedDigit(0);if(1===b.length&&32767>=m){r=new a(e.length,!1),r.__initializeDigits();for(var c,v=0,y=2*e.length-1;0<=y;y--)c=v<<15|e.__halfDigit(y),r.__setHalfDigit(y,0|c/m),v=0|c%m;d=v.toString(t)}else{var f=a.__absoluteDivLarge(e,b,!0,!0);r=f.quotient;var D=f.remainder.__trim();d=a.__toStringGeneric(D,t,!0)}r.__trim();for(var p=a.__toStringGeneric(r,t,!0);d.length_?a.__absoluteLess(i):0}},{key:\"__compareToNumber\",value:function(e,i){if(a.__isOneDigitInt(i)){var _=e.sign,n=0>i;if(_!==n)return a.__unequalSign(_);if(0===e.length){if(n)throw new Error(\"implementation bug\");return 0===i?0:-1}if(1l?a.__absoluteGreater(_):gt)return a.__unequalSign(i);if(0===t)throw new Error(\"implementation bug: should be handled elsewhere\");if(0===e.length)return-1;a.__kBitConversionDouble[0]=t;var _=2047&a.__kBitConversionInts[1]>>>20;if(2047==_)throw new Error(\"implementation bug: handled elsewhere\");var n=_-1023;if(0>n)return a.__absoluteGreater(i);var l=e.length,g=e.__digit(l-1),o=a.__clz30(g),u=30*l-o,s=n+1;if(us)return a.__absoluteGreater(i);var r=1048576|1048575&a.__kBitConversionInts[1],d=a.__kBitConversionInts[0],h=20,b=29-o;if(b!==(0|(u-1)%30))throw new Error(\"implementation bug\");var m,c=0;if(b>>v,r=r<<32-v|d>>>v,d<<=32-v}else if(b===h)c=32,m=r,r=d,d=0;else{var y=b-h;c=32-y,m=r<>>32-y,r=d<>>=0,m>>>=0,g>m)return a.__absoluteGreater(i);if(g>>2,r=r<<30|d>>>2,d<<=30):m=0;var D=e.__unsignedDigit(f);if(D>m)return a.__absoluteGreater(i);if(Di&&e.__unsignedDigit(0)===t(i):0===a.__compareToDouble(e,i)}},{key:\"__comparisonResultToBool\",value:function(e,t){return 0===t?0>e:1===t?0>=e:2===t?0t;case 3:return e>=t;}if(a.__isBigInt(e)&&\"string\"==typeof t)return t=a.__fromString(t),null!==t&&a.__comparisonResultToBool(a.__compareToBigInt(e,t),i);if(\"string\"==typeof e&&a.__isBigInt(t))return e=a.__fromString(e),null!==e&&a.__comparisonResultToBool(a.__compareToBigInt(e,t),i);if(e=a.__toNumeric(e),t=a.__toNumeric(t),a.__isBigInt(e)){if(a.__isBigInt(t))return a.__comparisonResultToBool(a.__compareToBigInt(e,t),i);if(\"number\"!=typeof t)throw new Error(\"implementation bug\");return a.__comparisonResultToBool(a.__compareToNumber(e,t),i)}if(\"number\"!=typeof e)throw new Error(\"implementation bug\");if(a.__isBigInt(t))return a.__comparisonResultToBool(a.__compareToNumber(t,e),2^i);if(\"number\"!=typeof t)throw new Error(\"implementation bug\");return 0===i?et:3===i?e>=t:void 0}},{key:\"__absoluteAdd\",value:function(e,t,_){if(e.length>>30,g.__setDigit(u,1073741823&l);for(;u>>30,g.__setDigit(u,1073741823&s)}return u>>30,l.__setDigit(o,1073741823&n);for(;o>>30,l.__setDigit(o,1073741823&u)}return l.__trim()}},{key:\"__absoluteAddOne\",value:function(e,t){var _=2>>30,_.__setDigit(o,1073741823&l);return 0!==g&&_.__setDigitGrow(n,1),_}},{key:\"__absoluteSubOne\",value:function(e,t){var _=e.length;t=t||_;for(var n,l=new a(t,!1),g=1,o=0;o<_;o++)n=e.__digit(o)-g,g=1&n>>>30,l.__setDigit(o,1073741823&n);if(0!==g)throw new Error(\"implementation bug\");for(var u=_;un?0:e.__unsignedDigit(n)>t.__unsignedDigit(n)?1:-1}},{key:\"__multiplyAccumulate\",value:function(e,t,_,n){if(0!==t){for(var l=32767&t,g=t>>>15,o=0,u=0,s=0;s>>15,m=a.__imul(h,l),c=a.__imul(h,g),v=a.__imul(b,l),y=a.__imul(b,g);r+=u+m+o,o=r>>>30,r&=1073741823,r+=((32767&c)<<15)+((32767&v)<<15),o+=r>>>30,u=y+(c>>>15)+(v>>>15),_.__setDigit(n,1073741823&r)}for(;0!==o||0!==u;n++){var f=_.__digit(n);f+=o+u,u=0,o=f>>>30,_.__setDigit(n,1073741823&f)}}}},{key:\"__internalMultiplyAdd\",value:function(e,t,_,l,g){for(var o=_,u=0,s=0;s>>15,t),m=h+((32767&b)<<15)+u+o;o=m>>>30,u=b>>>15,g.__setDigit(s,1073741823&m)}if(g.length>l)for(g.__setDigit(l++,o+u);l>>0,o=0|g/t;n=0|g%t,g=(n<<15|e.__halfDigit(l-1))>>>0;var u=0|g/t;n=0|g%t,_.__setDigit(l>>>1,o<<15|u)}return _}},{key:\"__absoluteModSmall\",value:function(e,t){for(var _,n=0,l=2*e.length-1;0<=l;l--)_=(n<<15|e.__halfDigit(l))>>>0,n=0|_%t;return n}},{key:\"__absoluteDivLarge\",value:function(e,t,i,_){var l=t.__halfDigitLength(),n=t.length,g=e.__halfDigitLength()-l,o=null;i&&(o=new a(g+2>>>1,!1),o.__initializeDigits());var s=new a(l+2>>>1,!1);s.__initializeDigits();var r=a.__clz15(t.__halfDigit(l-1));0>>0;m=0|y/u;for(var f=0|y%u,D=t.__halfDigit(l-2),p=d.__halfDigit(b+l-2);a.__imul(m,D)>>>0>(f<<16|p)>>>0&&(m--,f+=u,!(32767>>1,h|m))}if(_)return d.__inplaceRightShift(r),i?{quotient:o,remainder:d}:d;if(i)return o;throw new Error(\"unreachable\")}},{key:\"__clz15\",value:function(e){return a.__clz30(e)-15}},{key:\"__specialLeftShift\",value:function(e,t,_){var l=e.length,n=new a(l+_,!1);if(0===t){for(var g=0;g>>30-t;return 0<_&&n.__setDigit(l,u),n}},{key:\"__leftShiftByAbsolute\",value:function(e,t){var _=a.__toShiftAmount(t);if(0>_)throw new RangeError(\"BigInt too big\");var n=0|_/30,l=_%30,g=e.length,o=0!==l&&0!=e.__digit(g-1)>>>30-l,u=g+n+(o?1:0),s=new a(u,e.sign);if(0===l){for(var r=0;r>>30-l;if(o)s.__setDigit(g+n,h);else if(0!==h)throw new Error(\"implementation bug\")}return s.__trim()}},{key:\"__rightShiftByAbsolute\",value:function(e,t){var _=e.length,n=e.sign,l=a.__toShiftAmount(t);if(0>l)return a.__rightShiftByMaximum(n);var g=0|l/30,o=l%30,u=_-g;if(0>=u)return a.__rightShiftByMaximum(n);var s=!1;if(n){if(0!=(e.__digit(g)&(1<>>o,y=_-g-1,f=0;f>>o;b.__setDigit(y,v)}return s&&(b=a.__absoluteAddOne(b,!0,b)),b.__trim()}},{key:\"__rightShiftByMaximum\",value:function(e){return e?a.__oneDigit(1,!0):a.__zero()}},{key:\"__toShiftAmount\",value:function(e){if(1a.__kMaxLengthBits?-1:t}},{key:\"__toPrimitive\",value:function(e){var t=1>>u}return n.__setDigit(l,o),n.__trim()}},{key:\"__truncateAndSubFromPowerOfTwo\",value:function(e,t,_){for(var n=Math.min,l,g=0|(e+29)/30,o=new a(g,_),u=0,s=g-1,d=0,h=n(s,t.length);u>>30,o.__setDigit(u,1073741823&l);for(;u>>v;var y=1<<32-v;b=y-m-d,b&=y-1}return o.__setDigit(s,b),o.__trim()}},{key:\"__digitPow\",value:function(e,t){for(var i=1;0>>=1,e*=e;return i}},{key:\"__isOneDigitInt\",value:function(e){return(1073741823&e)===e}}]),a}(h(Array));return S.__kMaxLength=33554432,S.__kMaxLengthBits=S.__kMaxLength<<5,S.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],S.__kBitsPerCharTableShift=5,S.__kBitsPerCharTableMultiplier=1<>>0)/t)},S.__imul=e||function(e,t){return 0|e*t},S});\n//# sourceMappingURL=jsbi-umd.js.map\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","'use strict';\n\nexports.addon = function (renderer) {\n // CSSOM support only browser environment.\n if (!renderer.client) return;\n\n if (process.env.NODE_ENV !== 'production') {\n require('./__dev__/warnOnMissingDependencies')('cssom', renderer, ['sh']);\n }\n\n // Style sheet for media queries.\n document.head.appendChild(renderer.msh = document.createElement('style'));\n\n renderer.createRule = function (selector, prelude) {\n var rawCss = selector + '{}';\n if (prelude) rawCss = prelude + '{' + rawCss + '}';\n var sheet = prelude ? renderer.msh.sheet : renderer.sh.sheet;\n var index = sheet.insertRule(rawCss, sheet.cssRules.length);\n var rule = (sheet.cssRules || sheet.rules)[index];\n\n // Keep track of `index` where rule was inserted in the sheet. This is\n // needed for rule deletion.\n rule.index = index;\n\n if (prelude) {\n // If rule has media query (it has prelude), move style (CSSStyleDeclaration)\n // object to the \"top\" to normalize it with a rule without the media\n // query, so that both rules have `.style` property available.\n var selectorRule = (rule.cssRules || rule.rules)[0];\n rule.style = selectorRule.style;\n rule.styleMap = selectorRule.styleMap;\n }\n\n return rule;\n };\n};\n","'use strict';\n\nvar removeRule = require('./vcssom/removeRule').removeRule;\n\nexports.addon = function (renderer) {\n // VCSSOM support only browser environment.\n if (!renderer.client) return;\n\n if (process.env.NODE_ENV !== 'production') {\n require('./__dev__/warnOnMissingDependencies')('cssom', renderer, ['createRule']); // cssom\n }\n\n var kebab = renderer.kebab;\n\n function VRule (selector, prelude) {\n this.rule = renderer.createRule(selector, prelude);\n this.decl = {};\n }\n VRule.prototype.diff = function (newDecl) {\n var oldDecl = this.decl;\n var style = this.rule.style;\n var property;\n for (property in oldDecl)\n if (newDecl[property] === undefined)\n style.removeProperty(property);\n for (property in newDecl)\n if (newDecl[property] !== oldDecl[property])\n style.setProperty(kebab(property), newDecl[property]);\n this.decl = newDecl;\n };\n VRule.prototype.del = function () {\n removeRule(this.rule);\n };\n\n function VSheet () {\n /**\n * {\n * '': {\n * '': {\n * color: 'red\n * }\n * }\n * }\n */\n this.tree = {};\n }\n VSheet.prototype.diff = function (newTree) {\n var oldTree = this.tree;\n\n // Remove media queries not present in new tree.\n for (var prelude in oldTree) {\n if (newTree[prelude] === undefined) {\n var rules = oldTree[prelude];\n for (var selector in rules)\n rules[selector].del();\n }\n }\n\n for (var prelude in newTree) {\n if (oldTree[prelude] === undefined) {\n // Whole media query is new.\n for (var selector in newTree[prelude]) {\n var rule = new VRule(selector, prelude);\n rule.diff(newTree[prelude][selector]);\n newTree[prelude][selector] = rule;\n }\n } else {\n // Old tree already has rules with this media query.\n var oldRules = oldTree[prelude];\n var newRules = newTree[prelude];\n\n // Remove rules not present in new tree.\n for (var selector in oldRules)\n if (!newRules[selector])\n oldRules[selector].del();\n\n // Apply new rules.\n for (var selector in newRules) {\n var rule = oldRules[selector];\n if (rule) {\n rule.diff(newRules[selector]);\n newRules[selector] = rule;\n } else {\n rule = new VRule(selector, prelude);\n rule.diff(newRules[selector]);\n newRules[selector] = rule;\n }\n }\n }\n }\n\n this.tree = newTree;\n };\n\n renderer.VRule = VRule;\n renderer.VSheet = VSheet;\n};\n","function cssToTree (tree, css, selector, prelude) {\n var declarations = {};\n var hasDeclarations = false;\n var key, value;\n\n for (key in css) {\n value = css[key];\n if (typeof value !== 'object') {\n hasDeclarations = true;\n declarations[key] = value;\n }\n }\n\n if (hasDeclarations) {\n if (!tree[prelude]) tree[prelude] = {};\n tree[prelude][selector] = declarations;\n }\n\n for (key in css) {\n value = css[key];\n if (typeof value === 'object') {\n if (key[0] === '@') {\n cssToTree(tree, value, selector, key);\n } else {\n var hasCurrentSymbol = key.indexOf('&') > -1;\n var selectorParts = selector.split(',');\n if (hasCurrentSymbol) {\n for (var i = 0; i < selectorParts.length; i++) {\n selectorParts[i] = key.replace(/&/g, selectorParts[i]);\n }\n } else {\n for (var i = 0; i < selectorParts.length; i++) {\n selectorParts[i] = selectorParts[i] + ' ' + key;\n }\n }\n cssToTree(tree, value, selectorParts.join(','), prelude);\n }\n }\n }\n};\n\nexports.cssToTree = cssToTree;\n","function removeRule (rule) {\n var maxIndex = rule.index;\n var sh = rule.parentStyleSheet;\n var rules = sh.cssRules || sh.rules;\n maxIndex = Math.max(maxIndex, rules.length - 1);\n while (maxIndex >= 0) {\n if (rules[maxIndex] === rule) {\n sh.deleteRule(maxIndex);\n break;\n }\n maxIndex--;\n }\n}\n\nexports.removeRule = removeRule;\n","'use strict';\n\nvar KEBAB_REGEX = /[A-Z]/g;\n\nvar hash = function (str) {\n var h = 5381, i = str.length;\n\n while (i) h = (h * 33) ^ str.charCodeAt(--i);\n\n return '_' + (h >>> 0).toString(36);\n};\n\nexports.create = function (config) {\n config = config || {};\n var assign = config.assign || Object.assign;\n var client = typeof window === 'object';\n\n // Check if we are really in browser environment.\n if (process.env.NODE_ENV !== 'production') {\n if (client) {\n if ((typeof document !== 'object') || !document.getElementsByTagName('HTML')) {\n console.error(\n 'nano-css detected browser environment because of \"window\" global, but ' +\n '\"document\" global seems to be defective.'\n );\n }\n }\n }\n\n var renderer = assign({\n raw: '',\n pfx: '_',\n client: client,\n assign: assign,\n stringify: JSON.stringify,\n kebab: function (prop) {\n return prop.replace(KEBAB_REGEX, '-$&').toLowerCase();\n },\n decl: function (key, value) {\n key = renderer.kebab(key);\n return key + ':' + value + ';';\n },\n hash: function (obj) {\n return hash(renderer.stringify(obj));\n },\n selector: function (parent, selector) {\n return parent + (selector[0] === ':' ? '' : ' ') + selector;\n },\n putRaw: function (rawCssRule) {\n renderer.raw += rawCssRule;\n }\n }, config);\n\n if (renderer.client) {\n if (!renderer.sh)\n document.head.appendChild(renderer.sh = document.createElement('style'));\n\n if (process.env.NODE_ENV !== 'production') {\n renderer.sh.setAttribute('data-nano-css-dev', '');\n\n // Test style sheet used in DEV mode to test if .insetRule() would throw.\n renderer.shTest = document.createElement('style');\n renderer.shTest.setAttribute('data-nano-css-dev-tests', '');\n document.head.appendChild(renderer.shTest);\n }\n\n renderer.putRaw = function (rawCssRule) {\n // .insertRule() is faster than .appendChild(), that's why we use it in PROD.\n // But CSS injected using .insertRule() is not displayed in Chrome Devtools,\n // that's why we use .appendChild in DEV.\n if (process.env.NODE_ENV === 'production') {\n var sheet = renderer.sh.sheet;\n\n // Unknown pseudo-selectors will throw, this try/catch swallows all errors.\n try {\n sheet.insertRule(rawCssRule, sheet.cssRules.length);\n // eslint-disable-next-line no-empty\n } catch (error) {}\n } else {\n // Test if .insertRule() works in dev mode. Unknown pseudo-selectors will throw when\n // .insertRule() is used, but .appendChild() will not throw.\n try {\n renderer.shTest.sheet.insertRule(rawCssRule, renderer.shTest.sheet.cssRules.length);\n } catch (error) {\n if (config.verbose) {\n console.error(error);\n }\n }\n\n // Insert pretty-printed CSS for dev mode.\n renderer.sh.appendChild(document.createTextNode(rawCssRule));\n }\n };\n }\n\n renderer.put = function (selector, decls, atrule) {\n var str = '';\n var prop, value;\n var postponed = [];\n\n for (prop in decls) {\n value = decls[prop];\n\n if ((value instanceof Object) && !(value instanceof Array)) {\n postponed.push(prop);\n } else {\n if ((process.env.NODE_ENV !== 'production') && !renderer.sourcemaps) {\n str += ' ' + renderer.decl(prop, value, selector, atrule) + '\\n';\n } else {\n str += renderer.decl(prop, value, selector, atrule);\n }\n }\n }\n\n if (str) {\n if ((process.env.NODE_ENV !== 'production') && !renderer.sourcemaps) {\n str = '\\n' + selector + ' {\\n' + str + '}\\n';\n } else {\n str = selector + '{' + str + '}';\n }\n renderer.putRaw(atrule ? atrule + '{' + str + '}' : str);\n }\n\n for (var i = 0; i < postponed.length; i++) {\n prop = postponed[i];\n\n if (prop[0] === '@' && prop !== '@font-face') {\n renderer.putAt(selector, decls[prop], prop);\n } else {\n renderer.put(renderer.selector(selector, prop), decls[prop], atrule);\n }\n }\n };\n\n renderer.putAt = renderer.put;\n\n return renderer;\n};\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * react-number-format - 5.1.3\n * Author : Sudhanshu Yadav\n * Copyright (c) 2016, 2023 to Sudhanshu Yadav, released under the MIT license.\n * https://github.com/s-yadav/react-number-format\n */\n\nimport React, { useRef, useState, useMemo, useEffect } from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n { t[p] = s[p]; } }\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n { for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n { t[p[i]] = s[p[i]]; }\r\n } }\r\n return t;\r\n}\n\nvar SourceType;\n(function (SourceType) {\n SourceType[\"event\"] = \"event\";\n SourceType[\"props\"] = \"prop\";\n})(SourceType || (SourceType = {}));\n\n// basic noop function\nfunction noop() { }\nfunction charIsNumber(char) {\n return !!(char || '').match(/\\d/);\n}\nfunction isNil(val) {\n return val === null || val === undefined;\n}\nfunction isNanValue(val) {\n return typeof val === 'number' && isNaN(val);\n}\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\nfunction getThousandsGroupRegex(thousandsGroupStyle) {\n switch (thousandsGroupStyle) {\n case 'lakh':\n return /(\\d+?)(?=(\\d\\d)+(\\d)(?!\\d))(\\.\\d+)?/g;\n case 'wan':\n return /(\\d)(?=(\\d{4})+(?!\\d))/g;\n case 'thousand':\n default:\n return /(\\d)(?=(\\d{3})+(?!\\d))/g;\n }\n}\nfunction applyThousandSeparator(str, thousandSeparator, thousandsGroupStyle) {\n var thousandsGroupRegex = getThousandsGroupRegex(thousandsGroupStyle);\n var index = str.search(/[1-9]/);\n index = index === -1 ? str.length : index;\n return (str.substring(0, index) +\n str.substring(index, str.length).replace(thousandsGroupRegex, '$1' + thousandSeparator));\n}\nfunction usePersistentCallback(cb) {\n var callbackRef = useRef(cb);\n // keep the callback ref upto date\n callbackRef.current = cb;\n /**\n * initialize a persistent callback which never changes\n * through out the component lifecycle\n */\n var persistentCbRef = useRef(function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return callbackRef.current.apply(callbackRef, args);\n });\n return persistentCbRef.current;\n}\n//spilt a float number into different parts beforeDecimal, afterDecimal, and negation\nfunction splitDecimal(numStr, allowNegative) {\n if ( allowNegative === void 0 ) allowNegative = true;\n\n var hasNegation = numStr[0] === '-';\n var addNegation = hasNegation && allowNegative;\n numStr = numStr.replace('-', '');\n var parts = numStr.split('.');\n var beforeDecimal = parts[0];\n var afterDecimal = parts[1] || '';\n return {\n beforeDecimal: beforeDecimal,\n afterDecimal: afterDecimal,\n hasNegation: hasNegation,\n addNegation: addNegation,\n };\n}\nfunction fixLeadingZero(numStr) {\n if (!numStr)\n { return numStr; }\n var isNegative = numStr[0] === '-';\n if (isNegative)\n { numStr = numStr.substring(1, numStr.length); }\n var parts = numStr.split('.');\n var beforeDecimal = parts[0].replace(/^0+/, '') || '0';\n var afterDecimal = parts[1] || '';\n return (\"\" + (isNegative ? '-' : '') + beforeDecimal + (afterDecimal ? (\".\" + afterDecimal) : ''));\n}\n/**\n * limit decimal numbers to given scale\n * Not used .fixedTo because that will break with big numbers\n */\nfunction limitToScale(numStr, scale, fixedDecimalScale) {\n var str = '';\n var filler = fixedDecimalScale ? '0' : '';\n for (var i = 0; i <= scale - 1; i++) {\n str += numStr[i] || filler;\n }\n return str;\n}\nfunction repeat(str, count) {\n return Array(count + 1).join(str);\n}\nfunction toNumericString(num) {\n var _num = num + ''; // typecast number to string\n // store the sign and remove it from the number.\n var sign = _num[0] === '-' ? '-' : '';\n if (sign)\n { _num = _num.substring(1); }\n // split the number into cofficient and exponent\n var ref = _num.split(/[eE]/g);\n var coefficient = ref[0];\n var exponent = ref[1];\n // covert exponent to number;\n exponent = Number(exponent);\n // if there is no exponent part or its 0, return the coffiecient with sign\n if (!exponent)\n { return sign + coefficient; }\n coefficient = coefficient.replace('.', '');\n /**\n * for scientific notation the current decimal index will be after first number (index 0)\n * So effective decimal index will always be 1 + exponent value\n */\n var decimalIndex = 1 + exponent;\n var coffiecientLn = coefficient.length;\n if (decimalIndex < 0) {\n // if decimal index is less then 0 add preceding 0s\n // add 1 as join will have\n coefficient = '0.' + repeat('0', Math.abs(decimalIndex)) + coefficient;\n }\n else if (decimalIndex >= coffiecientLn) {\n // if decimal index is less then 0 add leading 0s\n coefficient = coefficient + repeat('0', decimalIndex - coffiecientLn);\n }\n else {\n // else add decimal point at proper index\n coefficient =\n (coefficient.substring(0, decimalIndex) || '0') + '.' + coefficient.substring(decimalIndex);\n }\n return sign + coefficient;\n}\n/**\n * This method is required to round prop value to given scale.\n * Not used .round or .fixedTo because that will break with big numbers\n */\nfunction roundToPrecision(numStr, scale, fixedDecimalScale) {\n //if number is empty don't do anything return empty string\n if (['', '-'].indexOf(numStr) !== -1)\n { return numStr; }\n var shouldHaveDecimalSeparator = (numStr.indexOf('.') !== -1 || fixedDecimalScale) && scale;\n var ref = splitDecimal(numStr);\n var beforeDecimal = ref.beforeDecimal;\n var afterDecimal = ref.afterDecimal;\n var hasNegation = ref.hasNegation;\n var floatValue = parseFloat((\"0.\" + (afterDecimal || '0')));\n var floatValueStr = afterDecimal.length <= scale ? (\"0.\" + afterDecimal) : floatValue.toFixed(scale);\n var roundedDecimalParts = floatValueStr.split('.');\n var intPart = beforeDecimal\n .split('')\n .reverse()\n .reduce(function (roundedStr, current, idx) {\n if (roundedStr.length > idx) {\n return ((Number(roundedStr[0]) + Number(current)).toString() +\n roundedStr.substring(1, roundedStr.length));\n }\n return current + roundedStr;\n }, roundedDecimalParts[0]);\n var decimalPart = limitToScale(roundedDecimalParts[1] || '', scale, fixedDecimalScale);\n var negation = hasNegation ? '-' : '';\n var decimalSeparator = shouldHaveDecimalSeparator ? '.' : '';\n return (\"\" + negation + intPart + decimalSeparator + decimalPart);\n}\n/** set the caret positon in an input field **/\nfunction setCaretPosition(el, caretPos) {\n el.value = el.value;\n // ^ this is used to not only get 'focus', but\n // to make sure we don't have it everything -selected-\n // (it causes an issue in chrome, and having it doesn't hurt any other browser)\n if (el !== null) {\n /* @ts-ignore */\n if (el.createTextRange) {\n /* @ts-ignore */\n var range = el.createTextRange();\n range.move('character', caretPos);\n range.select();\n return true;\n }\n // (el.selectionStart === 0 added for Firefox bug)\n if (el.selectionStart || el.selectionStart === 0) {\n el.focus();\n el.setSelectionRange(caretPos, caretPos);\n return true;\n }\n // fail city, fortunately this never happens (as far as I've tested) :)\n el.focus();\n return false;\n }\n}\nfunction findChangeRange(prevValue, newValue) {\n var i = 0, j = 0;\n var prevLength = prevValue.length;\n var newLength = newValue.length;\n while (prevValue[i] === newValue[i] && i < prevLength)\n { i++; }\n //check what has been changed from last\n while (prevValue[prevLength - 1 - j] === newValue[newLength - 1 - j] &&\n newLength - j > i &&\n prevLength - j > i) {\n j++;\n }\n return {\n from: { start: i, end: prevLength - j },\n to: { start: i, end: newLength - j },\n };\n}\n/*\n Returns a number whose value is limited to the given range\n*/\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction geInputCaretPosition(el) {\n /*Max of selectionStart and selectionEnd is taken for the patch of pixel and other mobile device caret bug*/\n return Math.max(el.selectionStart, el.selectionEnd);\n}\nfunction addInputMode() {\n return (typeof navigator !== 'undefined' &&\n !(navigator.platform && /iPhone|iPod/.test(navigator.platform)));\n}\nfunction getDefaultChangeMeta(value) {\n return {\n from: {\n start: 0,\n end: 0,\n },\n to: {\n start: 0,\n end: value.length,\n },\n lastValue: '',\n };\n}\nfunction getMaskAtIndex(mask, index) {\n if ( mask === void 0 ) mask = ' ';\n\n if (typeof mask === 'string') {\n return mask;\n }\n return mask[index] || ' ';\n}\nfunction getCaretPosition(newFormattedValue, lastFormattedValue, curValue, curCaretPos, boundary, isValidInputCharacter) {\n /**\n * if something got inserted on empty value, add the formatted character before the current value,\n * This is to avoid the case where typed character is present on format characters\n */\n var firstAllowedPosition = boundary.findIndex(function (b) { return b; });\n var prefixFormat = newFormattedValue.slice(0, firstAllowedPosition);\n if (!lastFormattedValue && !curValue.startsWith(prefixFormat)) {\n curValue = prefixFormat + curValue;\n curCaretPos = curCaretPos + prefixFormat.length;\n }\n var curValLn = curValue.length;\n var formattedValueLn = newFormattedValue.length;\n // create index map\n var addedIndexMap = {};\n var indexMap = new Array(curValLn);\n for (var i = 0; i < curValLn; i++) {\n indexMap[i] = -1;\n for (var j = 0, jLn = formattedValueLn; j < jLn; j++) {\n if (curValue[i] === newFormattedValue[j] && addedIndexMap[j] !== true) {\n indexMap[i] = j;\n addedIndexMap[j] = true;\n break;\n }\n }\n }\n /**\n * For current caret position find closest characters (left and right side)\n * which are properly mapped to formatted value.\n * The idea is that the new caret position will exist always in the boundary of\n * that mapped index\n */\n var pos = curCaretPos;\n while (pos < curValLn && (indexMap[pos] === -1 || !isValidInputCharacter(curValue[pos]))) {\n pos++;\n }\n // if the caret position is on last keep the endIndex as last for formatted value\n var endIndex = pos === curValLn || indexMap[pos] === -1 ? formattedValueLn : indexMap[pos];\n pos = curCaretPos - 1;\n while (pos > 0 && indexMap[pos] === -1)\n { pos--; }\n var startIndex = pos === -1 || indexMap[pos] === -1 ? 0 : indexMap[pos] + 1;\n /**\n * case where a char is added on suffix and removed from middle, example 2sq345 becoming $2,345 sq\n * there is still a mapping but the order of start index and end index is changed\n */\n if (startIndex > endIndex)\n { return endIndex; }\n /**\n * given the current caret position if it closer to startIndex\n * keep the new caret position on start index or keep it closer to endIndex\n */\n return curCaretPos - startIndex < endIndex - curCaretPos ? startIndex : endIndex;\n}\n/* This keeps the caret within typing area so people can't type in between prefix or suffix or format characters */\nfunction getCaretPosInBoundary(value, caretPos, boundary, direction) {\n var valLn = value.length;\n // clamp caret position to [0, value.length]\n caretPos = clamp(caretPos, 0, valLn);\n if (direction === 'left') {\n while (caretPos >= 0 && !boundary[caretPos])\n { caretPos--; }\n // if we don't find any suitable caret position on left, set it on first allowed position\n if (caretPos === -1)\n { caretPos = boundary.indexOf(true); }\n }\n else {\n while (caretPos <= valLn && !boundary[caretPos])\n { caretPos++; }\n // if we don't find any suitable caret position on right, set it on last allowed position\n if (caretPos > valLn)\n { caretPos = boundary.lastIndexOf(true); }\n }\n // if we still don't find caret position, set it at the end of value\n if (caretPos === -1)\n { caretPos = valLn; }\n return caretPos;\n}\nfunction caretUnknownFormatBoundary(formattedValue) {\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n for (var i = 0, ln = boundaryAry.length; i < ln; i++) {\n // consider caret to be in boundary if it is before or after numeric value\n boundaryAry[i] = Boolean(charIsNumber(formattedValue[i]) || charIsNumber(formattedValue[i - 1]));\n }\n return boundaryAry;\n}\nfunction useInternalValues(value, defaultValue, valueIsNumericString, format, removeFormatting, onValueChange) {\n if ( onValueChange === void 0 ) onValueChange = noop;\n\n var propValues = useRef();\n var getValues = usePersistentCallback(function (value) {\n var formattedValue, numAsString;\n if (isNil(value) || isNanValue(value)) {\n numAsString = '';\n formattedValue = '';\n }\n else if (typeof value === 'number' || valueIsNumericString) {\n numAsString = typeof value === 'number' ? toNumericString(value) : value;\n formattedValue = format(numAsString);\n }\n else {\n numAsString = removeFormatting(value, undefined);\n formattedValue = value;\n }\n return { formattedValue: formattedValue, numAsString: numAsString };\n });\n var ref = useState(function () {\n return getValues(defaultValue);\n });\n var values = ref[0];\n var setValues = ref[1];\n var _onValueChange = function (values, sourceInfo) {\n setValues({\n formattedValue: values.formattedValue,\n numAsString: values.value,\n });\n onValueChange(values, sourceInfo);\n };\n useMemo(function () {\n //if element is moved to uncontrolled mode, don't reset the value\n if (!isNil(value)) {\n propValues.current = getValues(value);\n setValues(propValues.current);\n }\n else {\n propValues.current = undefined;\n }\n }, [value, getValues]);\n return [values, _onValueChange];\n}\n\nfunction defaultRemoveFormatting(value) {\n return value.replace(/[^0-9]/g, '');\n}\nfunction defaultFormat(value) {\n return value;\n}\nfunction NumberFormatBase(props) {\n var type = props.type; if ( type === void 0 ) type = 'text';\n var displayType = props.displayType; if ( displayType === void 0 ) displayType = 'input';\n var customInput = props.customInput;\n var renderText = props.renderText;\n var getInputRef = props.getInputRef;\n var format = props.format; if ( format === void 0 ) format = defaultFormat;\n var removeFormatting = props.removeFormatting; if ( removeFormatting === void 0 ) removeFormatting = defaultRemoveFormatting;\n var defaultValue = props.defaultValue;\n var valueIsNumericString = props.valueIsNumericString;\n var onValueChange = props.onValueChange;\n var isAllowed = props.isAllowed;\n var onChange = props.onChange; if ( onChange === void 0 ) onChange = noop;\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var onMouseUp = props.onMouseUp; if ( onMouseUp === void 0 ) onMouseUp = noop;\n var onFocus = props.onFocus; if ( onFocus === void 0 ) onFocus = noop;\n var onBlur = props.onBlur; if ( onBlur === void 0 ) onBlur = noop;\n var propValue = props.value;\n var getCaretBoundary = props.getCaretBoundary; if ( getCaretBoundary === void 0 ) getCaretBoundary = caretUnknownFormatBoundary;\n var isValidInputCharacter = props.isValidInputCharacter; if ( isValidInputCharacter === void 0 ) isValidInputCharacter = charIsNumber;\n var otherProps = __rest(props, [\"type\", \"displayType\", \"customInput\", \"renderText\", \"getInputRef\", \"format\", \"removeFormatting\", \"defaultValue\", \"valueIsNumericString\", \"onValueChange\", \"isAllowed\", \"onChange\", \"onKeyDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"value\", \"getCaretBoundary\", \"isValidInputCharacter\"]);\n var ref = useInternalValues(propValue, defaultValue, Boolean(valueIsNumericString), format, removeFormatting, onValueChange);\n var ref_0 = ref[0];\n var formattedValue = ref_0.formattedValue;\n var numAsString = ref_0.numAsString;\n var onFormattedValueChange = ref[1];\n var lastUpdatedValue = useRef();\n var _onValueChange = function (values, source) {\n lastUpdatedValue.current = values.formattedValue;\n onFormattedValueChange(values, source);\n };\n // check if there is any change in the value due to props change\n useEffect(function () {\n var newFormattedValue = format(numAsString);\n // if the formatted value is not synced to parent, or if the formatted value is different\n if (lastUpdatedValue.current === undefined || newFormattedValue !== lastUpdatedValue.current) {\n var input = focusedElm.current;\n // formatting can remove some of the number chars, so we need to fine number string again\n var _numAsString = removeFormatting(newFormattedValue, undefined);\n updateValue({\n formattedValue: newFormattedValue,\n numAsString: _numAsString,\n input: input,\n setCaretPosition: true,\n source: SourceType.props,\n event: undefined,\n });\n }\n });\n var ref$1 = useState(false);\n var mounted = ref$1[0];\n var setMounted = ref$1[1];\n var focusedElm = useRef(null);\n var timeout = useRef({\n setCaretTimeout: null,\n focusTimeout: null,\n });\n useEffect(function () {\n setMounted(true);\n return function () {\n clearTimeout(timeout.current.setCaretTimeout);\n clearTimeout(timeout.current.focusTimeout);\n };\n }, []);\n var _format = format;\n var getValueObject = function (formattedValue, numAsString) {\n var floatValue = parseFloat(numAsString);\n return {\n formattedValue: formattedValue,\n value: numAsString,\n floatValue: isNaN(floatValue) ? undefined : floatValue,\n };\n };\n var setPatchedCaretPosition = function (el, caretPos, currentValue) {\n /* setting caret position within timeout of 0ms is required for mobile chrome,\n otherwise browser resets the caret position after we set it\n We are also setting it without timeout so that in normal browser we don't see the flickering */\n setCaretPosition(el, caretPos);\n timeout.current.setCaretTimeout = setTimeout(function () {\n if (el.value === currentValue)\n { setCaretPosition(el, caretPos); }\n }, 0);\n };\n /* This keeps the caret within typing area so people can't type in between prefix or suffix */\n var correctCaretPosition = function (value, caretPos, direction) {\n return getCaretPosInBoundary(value, caretPos, getCaretBoundary(value), direction);\n };\n var getNewCaretPosition = function (inputValue, newFormattedValue, caretPos) {\n var caretBoundary = getCaretBoundary(newFormattedValue);\n var updatedCaretPos = getCaretPosition(newFormattedValue, formattedValue, inputValue, caretPos, caretBoundary, isValidInputCharacter);\n //correct caret position if its outside of editable area\n updatedCaretPos = getCaretPosInBoundary(newFormattedValue, updatedCaretPos, caretBoundary);\n return updatedCaretPos;\n };\n var updateValue = function (params) {\n var newFormattedValue = params.formattedValue; if ( newFormattedValue === void 0 ) newFormattedValue = '';\n var input = params.input;\n var setCaretPosition = params.setCaretPosition; if ( setCaretPosition === void 0 ) setCaretPosition = true;\n var source = params.source;\n var event = params.event;\n var numAsString = params.numAsString;\n var caretPos = params.caretPos;\n if (input) {\n //calculate caret position if not defined\n if (caretPos === undefined && setCaretPosition) {\n var inputValue = params.inputValue || input.value;\n var currentCaretPosition = geInputCaretPosition(input);\n /**\n * set the value imperatively, this is required for IE fix\n * This is also required as if new caret position is beyond the previous value.\n * Caret position will not be set correctly\n */\n input.value = newFormattedValue;\n //get the caret position\n caretPos = getNewCaretPosition(inputValue, newFormattedValue, currentCaretPosition);\n }\n /**\n * set the value imperatively, as we set the caret position as well imperatively.\n * This is to keep value and caret position in sync\n */\n input.value = newFormattedValue;\n //set caret position, and value imperatively when element is provided\n if (setCaretPosition && caretPos !== undefined) {\n //set caret position\n setPatchedCaretPosition(input, caretPos, newFormattedValue);\n }\n }\n if (newFormattedValue !== formattedValue) {\n // trigger onValueChange synchronously, so parent is updated along with the number format. Fix for #277, #287\n _onValueChange(getValueObject(newFormattedValue, numAsString), { event: event, source: source });\n }\n };\n var formatInputValue = function (inputValue, event, source) {\n var changeRange = findChangeRange(formattedValue, inputValue);\n var changeMeta = Object.assign(Object.assign({}, changeRange), { lastValue: formattedValue });\n var _numAsString = removeFormatting(inputValue, changeMeta);\n var _formattedValue = _format(_numAsString);\n // formatting can remove some of the number chars, so we need to fine number string again\n _numAsString = removeFormatting(_formattedValue, undefined);\n if (isAllowed && !isAllowed(getValueObject(_formattedValue, _numAsString))) {\n //reset the caret position\n var input = event.target;\n var currentCaretPosition = geInputCaretPosition(input);\n var caretPos = getNewCaretPosition(inputValue, formattedValue, currentCaretPosition);\n setPatchedCaretPosition(input, caretPos, formattedValue);\n return false;\n }\n updateValue({\n formattedValue: _formattedValue,\n numAsString: _numAsString,\n inputValue: inputValue,\n event: event,\n source: source,\n setCaretPosition: true,\n input: event.target,\n });\n return true;\n };\n var _onChange = function (e) {\n var el = e.target;\n var inputValue = el.value;\n var changed = formatInputValue(inputValue, e, SourceType.event);\n if (changed)\n { onChange(e); }\n };\n var _onKeyDown = function (e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var expectedCaretPosition;\n //Handle backspace and delete against non numerical/decimal characters or arrow keys\n if (key === 'ArrowLeft' || key === 'Backspace') {\n expectedCaretPosition = Math.max(selectionStart - 1, 0);\n }\n else if (key === 'ArrowRight') {\n expectedCaretPosition = Math.min(selectionStart + 1, value.length);\n }\n else if (key === 'Delete') {\n expectedCaretPosition = selectionStart;\n }\n //if expectedCaretPosition is not set it means we don't want to Handle keyDown\n // also if multiple characters are selected don't handle\n if (expectedCaretPosition === undefined || selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n var newCaretPosition = expectedCaretPosition;\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n var direction = key === 'ArrowLeft' ? 'left' : 'right';\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, direction);\n }\n else if (key === 'Delete' && !isValidInputCharacter(value[expectedCaretPosition])) {\n // in case of delete go to closest caret boundary on the right side\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, 'right');\n }\n else if (key === 'Backspace' && !isValidInputCharacter(value[expectedCaretPosition])) {\n // in case of backspace go to closest caret boundary on the left side\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, 'left');\n }\n if (newCaretPosition !== expectedCaretPosition) {\n setPatchedCaretPosition(el, newCaretPosition, value);\n }\n /* NOTE: this is just required for unit test as we need to get the newCaretPosition,\n Remove this when you find different solution */\n /* @ts-ignore */\n if (e.isUnitTestRun) {\n setPatchedCaretPosition(el, newCaretPosition, value);\n }\n onKeyDown(e);\n };\n /** required to handle the caret position when click anywhere within the input **/\n var _onMouseUp = function (e) {\n var el = e.target;\n /**\n * NOTE: we have to give default value for value as in case when custom input is provided\n * value can come as undefined when nothing is provided on value prop.\n */\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n if (selectionStart === selectionEnd) {\n var caretPosition = correctCaretPosition(value, selectionStart);\n if (caretPosition !== selectionStart) {\n setPatchedCaretPosition(el, caretPosition, value);\n }\n }\n onMouseUp(e);\n };\n var _onFocus = function (e) {\n // Workaround Chrome and Safari bug https://bugs.chromium.org/p/chromium/issues/detail?id=779328\n // (onFocus event target selectionStart is always 0 before setTimeout)\n if (e.persist)\n { e.persist(); }\n var el = e.target;\n focusedElm.current = el;\n timeout.current.focusTimeout = setTimeout(function () {\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var caretPosition = correctCaretPosition(value, selectionStart);\n //setPatchedCaretPosition only when everything is not selected on focus (while tabbing into the field)\n if (caretPosition !== selectionStart &&\n !(selectionStart === 0 && selectionEnd === value.length)) {\n setPatchedCaretPosition(el, caretPosition, value);\n }\n onFocus(e);\n }, 0);\n };\n var _onBlur = function (e) {\n focusedElm.current = null;\n clearTimeout(timeout.current.focusTimeout);\n clearTimeout(timeout.current.setCaretTimeout);\n onBlur(e);\n };\n // add input mode on element based on format prop and device once the component is mounted\n var inputMode = mounted && addInputMode() ? 'numeric' : undefined;\n var inputProps = Object.assign({ inputMode: inputMode }, otherProps, {\n type: type,\n value: formattedValue,\n onChange: _onChange,\n onKeyDown: _onKeyDown,\n onMouseUp: _onMouseUp,\n onFocus: _onFocus,\n onBlur: _onBlur,\n });\n if (displayType === 'text') {\n return renderText ? (React.createElement(React.Fragment, null, renderText(formattedValue, otherProps) || null)) : (React.createElement(\"span\", Object.assign({}, otherProps, { ref: getInputRef }), formattedValue));\n }\n else if (customInput) {\n var CustomInput = customInput;\n /* @ts-ignore */\n return React.createElement(CustomInput, Object.assign({}, inputProps, { ref: getInputRef }));\n }\n return React.createElement(\"input\", Object.assign({}, inputProps, { ref: getInputRef }));\n}\n\nfunction format(numStr, props) {\n var decimalScale = props.decimalScale;\n var fixedDecimalScale = props.fixedDecimalScale;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var allowNegative = props.allowNegative; if ( allowNegative === void 0 ) allowNegative = true;\n var thousandsGroupStyle = props.thousandsGroupStyle; if ( thousandsGroupStyle === void 0 ) thousandsGroupStyle = 'thousand';\n // don't apply formatting on empty string or '-'\n if (numStr === '' || numStr === '-') {\n return numStr;\n }\n var ref = getSeparators(props);\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n /**\n * Keep the decimal separator\n * when decimalScale is not defined or non zero and the numStr has decimal in it\n * Or if decimalScale is > 0 and fixeDecimalScale is true (even if numStr has no decimal)\n */\n var hasDecimalSeparator = (decimalScale !== 0 && numStr.indexOf('.') !== -1) || (decimalScale && fixedDecimalScale);\n var ref$1 = splitDecimal(numStr, allowNegative);\n var beforeDecimal = ref$1.beforeDecimal;\n var afterDecimal = ref$1.afterDecimal;\n var addNegation = ref$1.addNegation; // eslint-disable-line prefer-const\n //apply decimal precision if its defined\n if (decimalScale !== undefined) {\n afterDecimal = limitToScale(afterDecimal, decimalScale, !!fixedDecimalScale);\n }\n if (thousandSeparator) {\n beforeDecimal = applyThousandSeparator(beforeDecimal, thousandSeparator, thousandsGroupStyle);\n }\n //add prefix and suffix when there is a number present\n if (prefix)\n { beforeDecimal = prefix + beforeDecimal; }\n if (suffix)\n { afterDecimal = afterDecimal + suffix; }\n //restore negation sign\n if (addNegation)\n { beforeDecimal = '-' + beforeDecimal; }\n numStr = beforeDecimal + ((hasDecimalSeparator && decimalSeparator) || '') + afterDecimal;\n return numStr;\n}\nfunction getSeparators(props) {\n var decimalSeparator = props.decimalSeparator; if ( decimalSeparator === void 0 ) decimalSeparator = '.';\n var thousandSeparator = props.thousandSeparator;\n var allowedDecimalSeparators = props.allowedDecimalSeparators;\n if (thousandSeparator === true) {\n thousandSeparator = ',';\n }\n if (!allowedDecimalSeparators) {\n allowedDecimalSeparators = [decimalSeparator, '.'];\n }\n return {\n decimalSeparator: decimalSeparator,\n thousandSeparator: thousandSeparator,\n allowedDecimalSeparators: allowedDecimalSeparators,\n };\n}\nfunction handleNegation(value, allowNegative) {\n if ( value === void 0 ) value = '';\n\n var negationRegex = new RegExp('(-)');\n var doubleNegationRegex = new RegExp('(-)(.)*(-)');\n // Check number has '-' value\n var hasNegation = negationRegex.test(value);\n // Check number has 2 or more '-' values\n var removeNegation = doubleNegationRegex.test(value);\n //remove negation\n value = value.replace(/-/g, '');\n if (hasNegation && !removeNegation && allowNegative) {\n value = '-' + value;\n }\n return value;\n}\nfunction getNumberRegex(decimalSeparator, global) {\n return new RegExp((\"(^-)|[0-9]|\" + (escapeRegExp(decimalSeparator))), global ? 'g' : undefined);\n}\nfunction removeFormatting(value, changeMeta, props) {\n if ( changeMeta === void 0 ) changeMeta = getDefaultChangeMeta(value);\n\n var allowNegative = props.allowNegative; if ( allowNegative === void 0 ) allowNegative = true;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var decimalScale = props.decimalScale;\n var from = changeMeta.from;\n var to = changeMeta.to;\n var start = to.start;\n var end = to.end;\n var ref = getSeparators(props);\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n var decimalSeparator = ref.decimalSeparator;\n var isBeforeDecimalSeparator = value[end] === decimalSeparator;\n /** Check for any allowed decimal separator is added in the numeric format and replace it with decimal separator */\n if (end - start === 1 && allowedDecimalSeparators.indexOf(value[start]) !== -1) {\n var separator = decimalScale === 0 ? '' : decimalSeparator;\n value = value.substring(0, start) + separator + value.substring(start + 1, value.length);\n }\n var hasNegation = false;\n /**\n * if prefix starts with - the number hast to have two - at the start\n * if suffix starts with - and the value length is same as suffix length, then the - sign is from the suffix\n * In other cases, if the value starts with - then it is a negation\n */\n if (prefix.startsWith('-'))\n { hasNegation = value.startsWith('--'); }\n else if (suffix.startsWith('-') && value.length === suffix.length)\n { hasNegation = false; }\n else if (value[0] === '-')\n { hasNegation = true; }\n // remove negation from start to simplify prefix logic as negation comes before prefix\n if (hasNegation) {\n value = value.substring(1);\n // account for the removal of the negation for start and end index\n start -= 1;\n end -= 1;\n }\n /**\n * remove prefix\n * Remove whole prefix part if its present on the value\n * If the prefix is partially deleted (in which case change start index will be less the prefix length)\n * Remove only partial part of prefix.\n */\n var startIndex = 0;\n if (value.startsWith(prefix))\n { startIndex += prefix.length; }\n else if (start < prefix.length)\n { startIndex = start; }\n value = value.substring(startIndex);\n // account for deleted prefix for end index\n end -= startIndex;\n /**\n * Remove suffix\n * Remove whole suffix part if its present on the value\n * If the suffix is partially deleted (in which case change end index will be greater than the suffixStartIndex)\n * remove the partial part of suffix\n */\n var endIndex = value.length;\n var suffixStartIndex = value.length - suffix.length;\n if (value.endsWith(suffix))\n { endIndex = suffixStartIndex; }\n else if (end > value.length - suffix.length)\n { endIndex = end; }\n value = value.substring(0, endIndex);\n // add the negation back and handle for double negation\n value = handleNegation(hasNegation ? (\"-\" + value) : value, allowNegative);\n // remove non numeric characters\n value = (value.match(getNumberRegex(decimalSeparator, true)) || []).join('');\n // replace the decimalSeparator with ., and only keep the first separator, ignore following ones\n var firstIndex = value.indexOf(decimalSeparator);\n value = value.replace(new RegExp(escapeRegExp(decimalSeparator), 'g'), function (match, index) {\n return index === firstIndex ? '.' : '';\n });\n //check if beforeDecimal got deleted and there is nothing after decimal,\n //clear all numbers in such case while keeping the - sign\n var ref$1 = splitDecimal(value, allowNegative);\n var beforeDecimal = ref$1.beforeDecimal;\n var afterDecimal = ref$1.afterDecimal;\n var addNegation = ref$1.addNegation; // eslint-disable-line prefer-const\n //clear only if something got deleted before decimal (cursor is before decimal)\n if (to.end - to.start < from.end - from.start &&\n beforeDecimal === '' &&\n isBeforeDecimalSeparator &&\n !parseFloat(afterDecimal)) {\n value = addNegation ? '-' : '';\n }\n return value;\n}\nfunction getCaretBoundary(formattedValue, props) {\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n var hasNegation = formattedValue[0] === '-';\n // fill for prefix and negation\n boundaryAry.fill(false, 0, prefix.length + (hasNegation ? 1 : 0));\n // fill for suffix\n var valLn = formattedValue.length;\n boundaryAry.fill(false, valLn - suffix.length + 1, valLn + 1);\n return boundaryAry;\n}\nfunction validateProps(props) {\n var ref = getSeparators(props);\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n if (thousandSeparator === decimalSeparator) {\n throw new Error((\"\\n Decimal separator can't be same as thousand separator.\\n thousandSeparator: \" + thousandSeparator + \" (thousandSeparator = {true} is same as thousandSeparator = \\\",\\\")\\n decimalSeparator: \" + decimalSeparator + \" (default value for decimalSeparator is .)\\n \"));\n }\n}\nfunction useNumericFormat(props) {\n var decimalSeparator = props.decimalSeparator; if ( decimalSeparator === void 0 ) decimalSeparator = '.';\n var allowedDecimalSeparators = props.allowedDecimalSeparators;\n var thousandsGroupStyle = props.thousandsGroupStyle;\n var suffix = props.suffix;\n var allowNegative = props.allowNegative;\n var allowLeadingZeros = props.allowLeadingZeros;\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var onBlur = props.onBlur; if ( onBlur === void 0 ) onBlur = noop;\n var thousandSeparator = props.thousandSeparator;\n var decimalScale = props.decimalScale;\n var fixedDecimalScale = props.fixedDecimalScale;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var defaultValue = props.defaultValue;\n var value = props.value;\n var valueIsNumericString = props.valueIsNumericString;\n var onValueChange = props.onValueChange;\n var restProps = __rest(props, [\"decimalSeparator\", \"allowedDecimalSeparators\", \"thousandsGroupStyle\", \"suffix\", \"allowNegative\", \"allowLeadingZeros\", \"onKeyDown\", \"onBlur\", \"thousandSeparator\", \"decimalScale\", \"fixedDecimalScale\", \"prefix\", \"defaultValue\", \"value\", \"valueIsNumericString\", \"onValueChange\"]);\n // validate props\n validateProps(props);\n var _format = function (numStr) { return format(numStr, props); };\n var _removeFormatting = function (inputValue, changeMeta) { return removeFormatting(inputValue, changeMeta, props); };\n var _valueIsNumericString = valueIsNumericString;\n if (!isNil(value)) {\n _valueIsNumericString = valueIsNumericString !== null && valueIsNumericString !== void 0 ? valueIsNumericString : typeof value === 'number';\n }\n else if (!isNil(defaultValue)) {\n _valueIsNumericString = valueIsNumericString !== null && valueIsNumericString !== void 0 ? valueIsNumericString : typeof defaultValue === 'number';\n }\n var roundIncomingValueToPrecision = function (value) {\n if (isNil(value) || isNanValue(value))\n { return value; }\n if (typeof value === 'number') {\n value = toNumericString(value);\n }\n /**\n * only round numeric or float string values coming through props,\n * we don't need to do it for onChange events, as we want to prevent typing there\n */\n if (_valueIsNumericString && typeof decimalScale === 'number') {\n return roundToPrecision(value, decimalScale, Boolean(fixedDecimalScale));\n }\n return value;\n };\n var ref = useInternalValues(roundIncomingValueToPrecision(value), roundIncomingValueToPrecision(defaultValue), Boolean(_valueIsNumericString), _format, _removeFormatting, onValueChange);\n var ref_0 = ref[0];\n var numAsString = ref_0.numAsString;\n var formattedValue = ref_0.formattedValue;\n var _onValueChange = ref[1];\n var _onKeyDown = function (e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n // if multiple characters are selected and user hits backspace, no need to handle anything manually\n if (selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n // if user hits backspace, while the cursor is before prefix, and the input has negation, remove the negation\n if (key === 'Backspace' && value[0] === '-' && selectionStart === prefix.length + 1) {\n // bring the cursor to after negation\n setCaretPosition(el, 1);\n }\n // don't allow user to delete decimal separator when decimalScale and fixedDecimalScale is set\n var ref = getSeparators(props);\n var decimalSeparator = ref.decimalSeparator;\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n if (key === 'Backspace' &&\n value[selectionStart - 1] === decimalSeparator &&\n decimalScale &&\n fixedDecimalScale) {\n setCaretPosition(el, selectionStart - 1);\n e.preventDefault();\n }\n // if user presses the allowed decimal separator before the separator, move the cursor after the separator\n if ((allowedDecimalSeparators === null || allowedDecimalSeparators === void 0 ? void 0 : allowedDecimalSeparators.includes(key)) && value[selectionStart] === decimalSeparator) {\n setCaretPosition(el, selectionStart + 1);\n }\n var _thousandSeparator = thousandSeparator === true ? ',' : thousandSeparator;\n // move cursor when delete or backspace is pressed before/after thousand separator\n if (key === 'Backspace' && value[selectionStart - 1] === _thousandSeparator) {\n setCaretPosition(el, selectionStart - 1);\n }\n if (key === 'Delete' && value[selectionStart] === _thousandSeparator) {\n setCaretPosition(el, selectionStart + 1);\n }\n onKeyDown(e);\n };\n var _onBlur = function (e) {\n var _value = numAsString;\n // if there no no numeric value, clear the input\n if (!_value.match(/\\d/g)) {\n _value = '';\n }\n // clear leading 0s\n if (!allowLeadingZeros) {\n _value = fixLeadingZero(_value);\n }\n // apply fixedDecimalScale on blur event\n if (fixedDecimalScale && decimalScale) {\n _value = roundToPrecision(_value, decimalScale, fixedDecimalScale);\n }\n if (_value !== numAsString) {\n var formattedValue = format(_value, props);\n _onValueChange({\n formattedValue: formattedValue,\n value: _value,\n floatValue: parseFloat(_value),\n }, {\n event: e,\n source: SourceType.event,\n });\n }\n onBlur(e);\n };\n var isValidInputCharacter = function (inputChar) {\n if (inputChar === decimalSeparator)\n { return true; }\n return charIsNumber(inputChar);\n };\n return Object.assign(Object.assign({}, restProps), { value: formattedValue, valueIsNumericString: false, isValidInputCharacter: isValidInputCharacter, onValueChange: _onValueChange, format: _format, removeFormatting: _removeFormatting, getCaretBoundary: function (formattedValue) { return getCaretBoundary(formattedValue, props); }, onKeyDown: _onKeyDown, onBlur: _onBlur });\n}\nfunction NumericFormat(props) {\n var numericFormatProps = useNumericFormat(props);\n return React.createElement(NumberFormatBase, Object.assign({}, numericFormatProps));\n}\n\nfunction format$1(numStr, props) {\n var format = props.format;\n var allowEmptyFormatting = props.allowEmptyFormatting;\n var mask = props.mask;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n if (numStr === '' && !allowEmptyFormatting)\n { return ''; }\n var hashCount = 0;\n var formattedNumberAry = format.split('');\n for (var i = 0, ln = format.length; i < ln; i++) {\n if (format[i] === patternChar) {\n formattedNumberAry[i] = numStr[hashCount] || getMaskAtIndex(mask, hashCount);\n hashCount += 1;\n }\n }\n return formattedNumberAry.join('');\n}\nfunction removeFormatting$1(value, changeMeta, props) {\n if ( changeMeta === void 0 ) changeMeta = getDefaultChangeMeta(value);\n\n var format = props.format;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var from = changeMeta.from;\n var to = changeMeta.to;\n var lastValue = changeMeta.lastValue; if ( lastValue === void 0 ) lastValue = '';\n var isNumericSlot = function (caretPos) { return format[caretPos] === patternChar; };\n var removeFormatChar = function (string, startIndex) {\n var str = '';\n for (var i = 0; i < string.length; i++) {\n if (isNumericSlot(startIndex + i) && charIsNumber(string[i])) {\n str += string[i];\n }\n }\n return str;\n };\n var extractNumbers = function (str) { return str.replace(/[^0-9]/g, ''); };\n // if format doesn't have any number, remove all the non numeric characters\n if (!format.match(/\\d/)) {\n return extractNumbers(value);\n }\n /**\n * if user paste the whole formatted text in an empty input, check if matches to the pattern\n * and remove the format characters, if there is a mismatch on the pattern, do plane number extract\n */\n if (lastValue === '' && value.length === format.length) {\n var str = '';\n for (var i = 0; i < value.length; i++) {\n if (isNumericSlot(i)) {\n if (charIsNumber(value[i])) {\n str += value[i];\n }\n }\n else if (value[i] !== format[i]) {\n // if there is a mismatch on the pattern, do plane number extract\n return extractNumbers(value);\n }\n }\n return str;\n }\n /**\n * For partial change,\n * where ever there is a change on the input, we can break the number in three parts\n * 1st: left part which is unchanged\n * 2nd: middle part which is changed\n * 3rd: right part which is unchanged\n *\n * The first and third section will be same as last value, only the middle part will change\n * We can consider on the change part all the new characters are non format characters.\n * And on the first and last section it can have partial format characters.\n *\n * We pick first and last section from the lastValue (as that has 1-1 mapping with format)\n * and middle one from the update value.\n */\n var firstSection = lastValue.substring(0, from.start);\n var middleSection = value.substring(to.start, to.end);\n var lastSection = lastValue.substring(from.end);\n return (\"\" + (removeFormatChar(firstSection, 0)) + (extractNumbers(middleSection)) + (removeFormatChar(lastSection, from.end)));\n}\nfunction getCaretBoundary$1(formattedValue, props) {\n var format = props.format;\n var mask = props.mask;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n var hashCount = 0;\n var firstEmptySlot = -1;\n var maskAndIndexMap = {};\n format.split('').forEach(function (char, index) {\n var maskAtIndex = undefined;\n if (char === patternChar) {\n hashCount++;\n maskAtIndex = getMaskAtIndex(mask, hashCount - 1);\n if (firstEmptySlot === -1 && formattedValue[index] === maskAtIndex) {\n firstEmptySlot = index;\n }\n }\n maskAndIndexMap[index] = maskAtIndex;\n });\n var isPosAllowed = function (pos) {\n // the position is allowed if the position is not masked and valid number area\n return format[pos] === patternChar && formattedValue[pos] !== maskAndIndexMap[pos];\n };\n for (var i = 0, ln = boundaryAry.length; i < ln; i++) {\n // consider caret to be in boundary if it is before or after numeric value\n // Note: on pattern based format its denoted by patternCharacter\n // we should also allow user to put cursor on first empty slot\n boundaryAry[i] = i === firstEmptySlot || isPosAllowed(i) || isPosAllowed(i - 1);\n }\n // the first patternChar position is always allowed\n boundaryAry[format.indexOf(patternChar)] = true;\n return boundaryAry;\n}\nfunction validateProps$1(props) {\n var mask = props.mask;\n if (mask) {\n var maskAsStr = mask === 'string' ? mask : mask.toString();\n if (maskAsStr.match(/\\d/g)) {\n throw new Error((\"Mask \" + mask + \" should not contain numeric character;\"));\n }\n }\n}\nfunction usePatternFormat(props) {\n var mask = props.mask;\n var allowEmptyFormatting = props.allowEmptyFormatting;\n var formatProp = props.format;\n var inputMode = props.inputMode; if ( inputMode === void 0 ) inputMode = 'numeric';\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var restProps = __rest(props, [\"mask\", \"allowEmptyFormatting\", \"format\", \"inputMode\", \"onKeyDown\", \"patternChar\"]);\n // validate props\n validateProps$1(props);\n var _getCaretBoundary = function (formattedValue) {\n return getCaretBoundary$1(formattedValue, props);\n };\n var _onKeyDown = function (e) {\n var key = e.key;\n var el = e.target;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value;\n // if multiple characters are selected and user hits backspace, no need to handle anything manually\n if (selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n // bring the cursor to closest numeric section\n var caretPos = selectionStart;\n // if backspace is pressed after the format characters, bring it to numeric section\n // if delete is pressed before the format characters, bring it to numeric section\n if (key === 'Backspace' || key === 'Delete') {\n var direction = 'right';\n if (key === 'Backspace') {\n while (caretPos > 0 && formatProp[caretPos - 1] !== patternChar) {\n caretPos--;\n }\n direction = 'left';\n }\n else {\n var formatLn = formatProp.length;\n while (caretPos < formatLn && formatProp[caretPos] !== patternChar) {\n caretPos++;\n }\n direction = 'right';\n }\n caretPos = getCaretPosInBoundary(value, caretPos, _getCaretBoundary(value), direction);\n }\n else if (formatProp[caretPos] !== patternChar &&\n key !== 'ArrowLeft' &&\n key !== 'ArrowRight') {\n // if user is typing on format character position, bring user to next allowed caret position\n caretPos = getCaretPosInBoundary(value, caretPos + 1, _getCaretBoundary(value), 'right');\n }\n // if we changing caret position, set the caret position\n if (caretPos !== selectionStart) {\n setCaretPosition(el, caretPos);\n }\n onKeyDown(e);\n };\n return Object.assign(Object.assign({}, restProps), { inputMode: inputMode, format: function (numStr) { return format$1(numStr, props); }, removeFormatting: function (inputValue, changeMeta) { return removeFormatting$1(inputValue, changeMeta, props); }, getCaretBoundary: _getCaretBoundary, onKeyDown: _onKeyDown });\n}\nfunction PatternFormat(props) {\n var patternFormatProps = usePatternFormat(props);\n return React.createElement(NumberFormatBase, Object.assign({}, patternFormatProps));\n}\n\nexport { NumberFormatBase, NumericFormat, PatternFormat, getCaretBoundary as getNumericCaretBoundary, getCaretBoundary$1 as getPatternCaretBoundary, format as numericFormatter, format$1 as patternFormatter, removeFormatting as removeNumericFormat, removeFormatting$1 as removePatternFormat, useNumericFormat, usePatternFormat };\n","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar wrapInStatefulComponent_1 = tslib_1.__importDefault(require(\"./wrapInStatefulComponent\"));\nvar addClassDecoratorSupport = function (Comp) {\n var isSFC = !Comp.prototype;\n return !isSFC ? Comp : wrapInStatefulComponent_1.default(Comp);\n};\nexports.default = addClassDecoratorSupport;\n//# sourceMappingURL=addClassDecoratorSupport.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.divWrapper = void 0;\nvar tslib_1 = require(\"tslib\");\nvar React = tslib_1.__importStar(require(\"react\"));\nvar addClassDecoratorSupport_1 = tslib_1.__importDefault(require(\"./addClassDecoratorSupport\"));\nvar h = React.createElement;\nvar noWrap = function (Comp, propName, props, state) {\n var _a;\n return h(Comp, propName ? tslib_1.__assign((_a = {}, _a[propName] = state, _a), props) : tslib_1.__assign(tslib_1.__assign({}, state), props));\n};\nexports.divWrapper = function (Comp, propName, props, state) {\n return h('div', null, noWrap(Comp, propName, props, state));\n};\nvar createEnhancer = function (Facc, prop, wrapper) {\n if (wrapper === void 0) { wrapper = noWrap; }\n var enhancer = function (Comp, propName, faccProps) {\n if (propName === void 0) { propName = prop; }\n if (faccProps === void 0) { faccProps = null; }\n var isClassDecoratorMethodCall = typeof Comp === 'string';\n if (isClassDecoratorMethodCall) {\n return function (Klass) { return enhancer(Klass, Comp || prop, propName); };\n }\n var Enhanced = function (props) {\n return h(Facc, faccProps, function (state) { return wrapper(Comp, propName, props, state); });\n };\n if (process.env.NODE_ENV !== 'production') {\n Enhanced.displayName = (Facc.displayName || Facc.name) + \"(\" + (Comp.displayName || Comp.name) + \")\";\n }\n return isClassDecoratorMethodCall ? addClassDecoratorSupport_1.default(Enhanced) : Enhanced;\n };\n return enhancer;\n};\nexports.default = createEnhancer;\n//# sourceMappingURL=createEnhancer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar render_1 = tslib_1.__importDefault(require(\"./render\"));\nvar defaultMapPropsToArgs = function (props) { return [props]; };\nvar hookToRenderProp = function (hook, mapPropsToArgs) {\n if (mapPropsToArgs === void 0) { mapPropsToArgs = defaultMapPropsToArgs; }\n return function (props) { return render_1.default(props, hook.apply(void 0, mapPropsToArgs(props))); };\n};\nexports.default = hookToRenderProp;\n//# sourceMappingURL=hookToRenderProp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hookToRenderProp = exports.createEnhancer = exports.render = void 0;\nvar tslib_1 = require(\"tslib\");\nvar render_1 = tslib_1.__importDefault(require(\"./render\"));\nexports.render = render_1.default;\nvar createEnhancer_1 = tslib_1.__importDefault(require(\"./createEnhancer\"));\nexports.createEnhancer = createEnhancer_1.default;\nvar hookToRenderProp_1 = tslib_1.__importDefault(require(\"./hookToRenderProp\"));\nexports.hookToRenderProp = hookToRenderProp_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar react_1 = require(\"react\");\nvar isReact16Plus = parseInt(react_1.version.substr(0, react_1.version.indexOf('.'))) > 15;\nvar isFn = function (fn) { return typeof fn === 'function'; };\nvar render = function (props, data) {\n var more = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n more[_i - 2] = arguments[_i];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof props !== 'object') {\n throw new TypeError('renderChildren(props, data) first argument must be a props object.');\n }\n var children_1 = props.children, render_1 = props.render;\n if (isFn(children_1) && isFn(render_1)) {\n console.warn('Both \"render\" and \"children\" are specified for in a universal interface component. ' +\n 'Children will be used.');\n console.trace();\n }\n if (typeof data !== 'object') {\n console.warn('Universal component interface normally expects data to be an object, ' +\n (\"\\\"\" + typeof data + \"\\\" received.\"));\n console.trace();\n }\n }\n var render = props.render, _a = props.children, children = _a === void 0 ? render : _a, component = props.component, _b = props.comp, comp = _b === void 0 ? component : _b;\n if (isFn(children))\n return children.apply(void 0, tslib_1.__spreadArrays([data], more));\n if (comp) {\n return react_1.createElement(comp, data);\n }\n if (children instanceof Array)\n return isReact16Plus ? children : react_1.createElement.apply(void 0, tslib_1.__spreadArrays(['div', null], children));\n if (children && (children instanceof Object)) {\n if (process.env.NODE_ENV !== 'production') {\n if (!children.type || ((typeof children.type !== 'string') && (typeof children.type !== 'function') && (typeof children.type !== 'symbol'))) {\n console.warn('Universal component interface received object as children, ' +\n 'expected React element, but received unexpected React \"type\".');\n console.trace();\n }\n if (typeof children.type === 'string')\n return children;\n return react_1.cloneElement(children, Object.assign({}, children.props, data));\n }\n else {\n if (typeof children.type === 'string')\n return children;\n return react_1.cloneElement(children, Object.assign({}, children.props, data));\n }\n }\n return children || null;\n};\nexports.default = render;\n//# sourceMappingURL=render.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar React = tslib_1.__importStar(require(\"react\"));\nvar wrapInStatefulComponent = function (Comp) {\n var Decorated = (function (_super) {\n tslib_1.__extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.render = function () {\n return Comp(this.props, this.context);\n };\n return class_1;\n }(React.Component));\n if (process.env.NODE_ENV !== 'production') {\n Decorated.displayName = \"Decorated(\" + (Comp.displayName || Comp.name) + \")\";\n }\n return Decorated;\n};\nexports.default = wrapInStatefulComponent;\n//# sourceMappingURL=wrapInStatefulComponent.js.map","import { useMemo } from 'react';\nvar createMemo = function (fn) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return useMemo(function () { return fn.apply(void 0, args); }, args);\n };\n};\nexport default createMemo;\n","import { createContext, createElement, useContext, useReducer } from 'react';\nvar createReducerContext = function (reducer, defaultInitialState) {\n var context = createContext(undefined);\n var providerFactory = function (props, children) { return createElement(context.Provider, props, children); };\n var ReducerProvider = function (_a) {\n var children = _a.children, initialState = _a.initialState;\n var state = useReducer(reducer, initialState !== undefined ? initialState : defaultInitialState);\n return providerFactory({ value: state }, children);\n };\n var useReducerContext = function () {\n var state = useContext(context);\n if (state == null) {\n throw new Error(\"useReducerContext must be used inside a ReducerProvider.\");\n }\n return state;\n };\n return [useReducerContext, ReducerProvider, context];\n};\nexport default createReducerContext;\n","import { useRef } from 'react';\nexport function useFirstMountState() {\n var isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n}\n","import { useEffect } from 'react';\nimport { useFirstMountState } from './useFirstMountState';\nvar useUpdateEffect = function (effect, deps) {\n var isFirstMount = useFirstMountState();\n useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n }, deps);\n};\nexport default useUpdateEffect;\n","import { useCallback, useRef, useState } from 'react';\nimport useUpdateEffect from '../useUpdateEffect';\nfunction composeMiddleware(chain) {\n return function (context, dispatch) {\n return chain.reduceRight(function (res, middleware) {\n return middleware(context)(res);\n }, dispatch);\n };\n}\nvar createReducer = function () {\n var middlewares = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n middlewares[_i] = arguments[_i];\n }\n var composedMiddleware = composeMiddleware(middlewares);\n return function (reducer, initialState, initializer) {\n if (initializer === void 0) { initializer = function (value) { return value; }; }\n var ref = useRef(initializer(initialState));\n var _a = useState(ref.current), setState = _a[1];\n var dispatch = useCallback(function (action) {\n ref.current = reducer(ref.current, action);\n setState(ref.current);\n return action;\n }, [reducer]);\n var dispatchRef = useRef(composedMiddleware({\n getState: function () { return ref.current; },\n dispatch: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return dispatchRef.current.apply(dispatchRef, args);\n },\n }, dispatch));\n useUpdateEffect(function () {\n dispatchRef.current = composedMiddleware({\n getState: function () { return ref.current; },\n dispatch: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return dispatchRef.current.apply(dispatchRef, args);\n },\n }, dispatch);\n }, [dispatch]);\n return [ref.current, dispatchRef.current];\n };\n};\nexport default createReducer;\n","import { createContext, createElement, useContext, useState } from 'react';\nvar createStateContext = function (defaultInitialValue) {\n var context = createContext(undefined);\n var providerFactory = function (props, children) { return createElement(context.Provider, props, children); };\n var StateProvider = function (_a) {\n var children = _a.children, initialValue = _a.initialValue;\n var state = useState(initialValue !== undefined ? initialValue : defaultInitialValue);\n return providerFactory({ value: state }, children);\n };\n var useStateContext = function () {\n var state = useContext(context);\n if (state == null) {\n throw new Error(\"useStateContext must be used inside a StateProvider.\");\n }\n return state;\n };\n return [useStateContext, StateProvider, context];\n};\nexport default createStateContext;\n","import { useCallback, useEffect, useRef } from 'react';\nexport default function useMountedState() {\n var mountedRef = useRef(false);\n var get = useCallback(function () { return mountedRef.current; }, []);\n useEffect(function () {\n mountedRef.current = true;\n return function () {\n mountedRef.current = false;\n };\n }, []);\n return get;\n}\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { __assign, __spreadArrays } from \"tslib\";\nimport { useCallback, useState } from 'react';\nimport useAsync from './useAsync';\nvar useAsyncRetry = function (fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useState(0), attempt = _a[0], setAttempt = _a[1];\n var state = useAsync(fn, __spreadArrays(deps, [attempt]));\n var stateLoading = state.loading;\n var retry = useCallback(function () {\n if (stateLoading) {\n if (process.env.NODE_ENV === 'development') {\n console.log('You are calling useAsyncRetry hook retry() method while loading in progress, this is a no-op.');\n }\n return;\n }\n setAttempt(function (currentAttempt) { return currentAttempt + 1; });\n }, __spreadArrays(deps, [stateLoading]));\n return __assign(__assign({}, state), { retry: retry });\n};\nexport default useAsyncRetry;\n","import { useCallback, useState } from 'react';\nvar useSetState = function (initialState) {\n if (initialState === void 0) { initialState = {}; }\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var setState = useCallback(function (patch) {\n set(function (prevState) {\n return Object.assign({}, prevState, patch instanceof Function ? patch(prevState) : patch);\n });\n }, []);\n return [state, setState];\n};\nexport default useSetState;\n","export default function parseTimeRanges(ranges) {\n var result = [];\n for (var i = 0; i < ranges.length; i++) {\n result.push({\n start: ranges.start(i),\n end: ranges.end(i),\n });\n }\n return result;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport useSetState from '../useSetState';\nimport parseTimeRanges from '../misc/parseTimeRanges';\nexport default function createHTMLMediaHook(tag) {\n return function (elOrProps) {\n var element;\n var props;\n if (React.isValidElement(elOrProps)) {\n element = elOrProps;\n props = element.props;\n }\n else {\n props = elOrProps;\n }\n var _a = useSetState({\n buffered: [],\n time: 0,\n duration: 0,\n paused: true,\n muted: false,\n volume: 1,\n playing: false,\n }), state = _a[0], setState = _a[1];\n var ref = useRef(null);\n var wrapEvent = function (userEvent, proxyEvent) {\n return function (event) {\n try {\n proxyEvent && proxyEvent(event);\n }\n finally {\n userEvent && userEvent(event);\n }\n };\n };\n var onPlay = function () { return setState({ paused: false }); };\n var onPlaying = function () { return setState({ playing: true }); };\n var onWaiting = function () { return setState({ playing: false }); };\n var onPause = function () { return setState({ paused: true, playing: false }); };\n var onVolumeChange = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n setState({\n muted: el.muted,\n volume: el.volume,\n });\n };\n var onDurationChange = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n var duration = el.duration, buffered = el.buffered;\n setState({\n duration: duration,\n buffered: parseTimeRanges(buffered),\n });\n };\n var onTimeUpdate = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n setState({ time: el.currentTime });\n };\n var onProgress = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n setState({ buffered: parseTimeRanges(el.buffered) });\n };\n if (element) {\n element = React.cloneElement(element, __assign(__assign({ controls: false }, props), { ref: ref, onPlay: wrapEvent(props.onPlay, onPlay), onPlaying: wrapEvent(props.onPlaying, onPlaying), onWaiting: wrapEvent(props.onWaiting, onWaiting), onPause: wrapEvent(props.onPause, onPause), onVolumeChange: wrapEvent(props.onVolumeChange, onVolumeChange), onDurationChange: wrapEvent(props.onDurationChange, onDurationChange), onTimeUpdate: wrapEvent(props.onTimeUpdate, onTimeUpdate), onProgress: wrapEvent(props.onProgress, onProgress) }));\n }\n else {\n element = React.createElement(tag, __assign(__assign({ controls: false }, props), { ref: ref, onPlay: wrapEvent(props.onPlay, onPlay), onPlaying: wrapEvent(props.onPlaying, onPlaying), onWaiting: wrapEvent(props.onWaiting, onWaiting), onPause: wrapEvent(props.onPause, onPause), onVolumeChange: wrapEvent(props.onVolumeChange, onVolumeChange), onDurationChange: wrapEvent(props.onDurationChange, onDurationChange), onTimeUpdate: wrapEvent(props.onTimeUpdate, onTimeUpdate), onProgress: wrapEvent(props.onProgress, onProgress) })); // TODO: fix this typing.\n }\n // Some browsers return `Promise` on `.play()` and may throw errors\n // if one tries to execute another `.play()` or `.pause()` while that\n // promise is resolving. So we prevent that with this lock.\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=593273\n var lockPlay = false;\n var controls = {\n play: function () {\n var el = ref.current;\n if (!el) {\n return undefined;\n }\n if (!lockPlay) {\n var promise = el.play();\n var isPromise = typeof promise === 'object';\n if (isPromise) {\n lockPlay = true;\n var resetLock = function () {\n lockPlay = false;\n };\n promise.then(resetLock, resetLock);\n }\n return promise;\n }\n return undefined;\n },\n pause: function () {\n var el = ref.current;\n if (el && !lockPlay) {\n return el.pause();\n }\n },\n seek: function (time) {\n var el = ref.current;\n if (!el || state.duration === undefined) {\n return;\n }\n time = Math.min(state.duration, Math.max(0, time));\n el.currentTime = time;\n },\n volume: function (volume) {\n var el = ref.current;\n if (!el) {\n return;\n }\n volume = Math.min(1, Math.max(0, volume));\n el.volume = volume;\n setState({ volume: volume });\n },\n mute: function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n el.muted = true;\n },\n unmute: function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n el.muted = false;\n },\n };\n useEffect(function () {\n var el = ref.current;\n if (!el) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === 'audio') {\n console.error('useAudio() ref to